• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bot na facebook nie działa tak jak powinien

0 głosów
78 wizyt
pytanie zadane 24 stycznia w PHP, Symfony, Zend przez ShadoWs Bywalec (2,340 p.)
edycja 24 stycznia przez ShadoWs

Witam ogarniam sobie z tym poradnikiem bota https://devcorner.pl/zbudowac-chatbota-dla-messengera-php-…/ i mam problem. Bot odpisuje tylko jak piszę z konta z którego go stworzyłem. Znajomy jak coś pisze to mu nie odpisuje a wiadomość leci do skrzynki odbiorczej :( Co może być nie tak tutaj może ten kod jest zły. Dzięki z góry za rady :)

<?php

    $verify_token = "WixBot";

    $hub_verify_token = null;
    if(isset($_REQUEST['hub_challenge'])) {
        $challenge = $_REQUEST['hub_challenge'];
        $hub_verify_token = $_REQUEST['hub_verify_token'];
    }
    if ($hub_verify_token === $verify_token) {
        echo $challenge;
    }

$access_token = "xsxsxsxsxs";

$input = json_decode(file_get_contents('php://input'), true);
$sender = $input['entry'][0]['messaging'][0]['sender']['id'];
$message = $input['entry'][0]['messaging'][0]['message']['text'];
$message_to_reply = '';

$user_info_url = "https://graph.facebook.com/v2.6/".$sender."?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=".$access_token;
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $user_info_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close ($ch);

$user = json_decode($result);

if(preg_match('[cześć|dzień dobry|witam|hej]', strtolower($message))) {
    $array = ['Dzień dobry', 'Witam', 'Cześć', 'Hej'];
    $message_to_reply = $array[array_rand($array)]." ".$user->first_name;

    $jsonData = '{
        "recipient":{
            "id":"'.$sender.'"
        },
        "message":{
            "text":"'.$message_to_reply.'"
        }
    }';
}
 else {
    $message_to_reply = 'Nie rozumiem. Co masz na myśli?';

    $jsonData = '{
        "recipient":{
            "id":"'.$sender.'"
        },
        "message":{
            "text":"'.$message_to_reply.'"
        }
    }';
}


$url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$access_token;
$ch = curl_init($url);


// informujemy cURL, że chcemy przesłać żądanie POST.
curl_setopt($ch, CURLOPT_POST, 1);
// dodajemy zakodowany JSON string do POST.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
// ustawiamy content type na application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

// wykonaj żądanie
if(!empty($input['entry'][0]['messaging'][0]['message'])){
    $result = curl_exec($ch);
}

?>

 

komentarz 24 stycznia przez niezalogowany
Myślisz, że potrafimy wywróżyć twój kod z fusów? Bo na jakiej innej zasadzie możemy stwierdzić co jest nie tak w TWOIM kodzie? Wrzuć kod to wtedy zobaczymy...
komentarz 24 stycznia przez ShadoWs Bywalec (2,340 p.)
edycja 24 stycznia przez ShadoWs
Kod jest jota w jote taki jak w poradniku zmieniony jest token. Kod już dołączony
komentarz 24 stycznia przez niezalogowany

Nie wiem czy to mądrze jest wrzucać publicznie kod weryfikacyjny z API, radziłbym ci go unieważnić

Czy to taki copy-paste tylko ze zmianą tokenu to nie wiem, diff mówi co innego:

*** webhook.php	2017-02-21 21:14:22.000000000 +0100
--- pi.php	2018-01-24 19:36:10.882904961 +0100
***************
*** 1,56 ****
! <?php
! 
!     $verify_token = "devcorner";
! 
!     $hub_verify_token = null;
!     if(isset($_REQUEST['hub_challenge'])) {
!         $challenge = $_REQUEST['hub_challenge'];
!         $hub_verify_token = $_REQUEST['hub_verify_token'];
!     }
!     if ($hub_verify_token === $verify_token) {
!         echo $challenge;
!     }
! 
! 
! $access_token = "twój kod weryfikacyjny tutaj";
! 
! $input = json_decode(file_get_contents('php://input'), true);
! $sender = $input['entry'][0]['messaging'][0]['sender']['id'];
! $message = $input['entry'][0]['messaging'][0]['message']['text'];
! $message_to_reply = '';
! 
! if(preg_match('[cześć|dzień dobry|witam]', strtolower($message))) {
!     $array = ['Dzień dobry', 'Witam', 'Cześć', 'Hej'];
!     $message_to_reply = $array[array_rand($array)];
! }
!  else {
!     $message_to_reply = 'Nie rozumiem. Co masz na myśli?';
! }
! 
! 
! $url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$access_token;
! $ch = curl_init($url);
! 
! $jsonData = '{
!     "recipient":{
!         "id":"'.$sender.'"
!     },
!     "message":{
!         "text":"'.$message_to_reply.'"
!     }
! }';
! 
! 
! // informujemy cURL, że chcemy przesłać żądanie POST.
! curl_setopt($ch, CURLOPT_POST, 1);
! // dodajemy zakodowany JSON string do POST.
! curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
! // ustawiamy content type na application/json
! curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
! 
! // wykonaj żądanie
! if(!empty($input['entry'][0]['messaging'][0]['message'])){
!     $result = curl_exec($ch);
! }
! 
! ?>
--- 1,76 ----
! <?php
!  
!     $verify_token = "WixBot";
!  
!     $hub_verify_token = null;
!     if(isset($_REQUEST['hub_challenge'])) {
!         $challenge = $_REQUEST['hub_challenge'];
!         $hub_verify_token = $_REQUEST['hub_verify_token'];
!     }
!     if ($hub_verify_token === $verify_token) {
!         echo $challenge;
!     }
!  
! $access_token = "EAACSHBUbs6K4KN7O1eFzIXEEl6MCtdRHwTXtHjCVKA3zdjYtRWqQCC81CnB7PBZAoxJB68KV1bY3lPSh1KuMhoTh4MrB1malP6HDFD9LgFhsHtdLB8qis1eaMoE8RQZDZD";
!  
! $input = json_decode(file_get_contents('php://input'), true);
! $sender = $input['entry'][0]['messaging'][0]['sender']['id'];
! $message = $input['entry'][0]['messaging'][0]['message']['text'];
! $message_to_reply = '';
!  
! $user_info_url = "https://graph.facebook.com/v2.6/".$sender."?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=".$access_token;
! $ch = curl_init();
!  
! curl_setopt($ch, CURLOPT_URL, $user_info_url);
! curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
!  
! $result = curl_exec($ch);
!  
! curl_close ($ch);
!  
! $user = json_decode($result);
!  
! if(preg_match('[cześć|dzień dobry|witam|hej]', strtolower($message))) {
!     $array = ['Dzień dobry', 'Witam', 'Cześć', 'Hej'];
!     $message_to_reply = $array[array_rand($array)]." ".$user->first_name;
!  
!     $jsonData = '{
!         "recipient":{
!             "id":"'.$sender.'"
!         },
!         "message":{
!             "text":"'.$message_to_reply.'"
!         }
!     }';
! }
!  else {
!     $message_to_reply = 'Nie rozumiem. Co masz na myśli?';
!  
!     $jsonData = '{
!         "recipient":{
!             "id":"'.$sender.'"
!         },
!         "message":{
!             "text":"'.$message_to_reply.'"
!         }
!     }';
! }
!  
!  
! $url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$access_token;
! $ch = curl_init($url);
!  
!  
! // informujemy cURL, że chcemy przesłać żądanie POST.
! curl_setopt($ch, CURLOPT_POST, 1);
! // dodajemy zakodowany JSON string do POST.
! curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
! // ustawiamy content type na application/json
! curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
!  
! // wykonaj żądanie
! if(!empty($input['entry'][0]['messaging'][0]['message'])){
!     $result = curl_exec($ch);
! }
!  
! ?>
\ No newline at end of file

 

komentarz 24 stycznia przez ShadoWs Bywalec (2,340 p.)
edycja 24 stycznia przez ShadoWs
Token jest inny :D Ten kod co teraz mam jest poprawiony przez autora znajduje się w 3 części poradnika. To coś chyba z fb musi być bo bot działa ale tylko dla mnie reszcza idzie do szkrzynki

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+3 głosów
1 odpowiedź 172 wizyt
pytanie zadane 1 października 2017 w Inne języki przez Anoonymous Obywatel (1,510 p.)
0 głosów
1 odpowiedź 162 wizyt
pytanie zadane 10 października 2017 w Telefony i tablety przez Kam Ka Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 4,346 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

50,770 zapytań

93,010 odpowiedzi

188,691 komentarzy

24,725 pasjonatów

Przeglądających: 228
Pasjonatów: 20 Gości: 208

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...