• 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

Cloud VPS
0 głosów
433 wizyt
pytanie zadane 24 stycznia 2018 w PHP przez ShadoWs Bywalec (2,800 p.)
edycja 24 stycznia 2018 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 2018 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 2018 przez ShadoWs Bywalec (2,800 p.)
edycja 24 stycznia 2018 przez ShadoWs
Kod jest jota w jote taki jak w poradniku zmieniony jest token. Kod już dołączony
komentarz 24 stycznia 2018 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 2018 przez ShadoWs Bywalec (2,800 p.)
edycja 24 stycznia 2018 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

0 głosów
1 odpowiedź 216 wizyt
pytanie zadane 20 stycznia 2019 w Offtop przez skrooq Nowicjusz (140 p.)
0 głosów
1 odpowiedź 451 wizyt
pytanie zadane 25 grudnia 2020 w Python przez Bakkit Dyskutant (7,600 p.)
+3 głosów
1 odpowiedź 382 wizyt
pytanie zadane 1 października 2017 w Inne języki przez Anoonymous Obywatel (1,560 p.)

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

62,833 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...