• 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
126 wizyt
pytanie zadane 24 stycznia 2018 w PHP, Symfony, Zend przez ShadoWs Bywalec (2,360 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,360 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,360 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ź 90 wizyt
pytanie zadane 20 stycznia w Offtop przez skrooq Nowicjusz (140 p.)
+3 głosów
1 odpowiedź 199 wizyt
pytanie zadane 1 października 2017 w Inne języki przez Anoonymous Obywatel (1,560 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

66,507 zapytań

113,271 odpowiedzi

239,885 komentarzy

46,644 pasjonatów

Przeglądających: 301
Pasjonatów: 18 Gości: 283

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.

...