2016-11-03 5 views
1

Так что в настоящее время я занимаюсь разработкой простого чата-чата facebook. Я использую localhost url для туннеля через ngrok. Я также создал приложение facebook и страницу, на которой должен запускаться бот. Я также создал webhook для этого. Все прошло успешно без каких-либо проблем. Но проблема в том, что я не могу получить ответ от бота на работу. Я получаю сообщение пользователя, но я не могу заставить бота ответить. Таким образом, пользователь не получает ничего в качестве ответа. Хотя в веб-интерфейсе ngrok я вижу, что строка, которую я хочу, чтобы бот отвечал, есть, но почему-то он не получает отправку пользователю в качестве ответа. Вот код для него. Может ли кто-нибудь указать на ошибку? вот ngrok инспектироватьВопрос о том, как отправлять сообщения чатбота Facebook

enter image description here

Вот код моего файла PHP, который вызывается.

<?php 
if (isset($_GET['hub_verify_token'])) { 
if ($_GET['hub_verify_token'] === 'verify_token') { 
    echo $_GET['hub_challenge']; 
    return; 
} else { 
    echo 'Invalid Verify Token'; 
    return; 
}}$input = json_decode(file_get_contents('php://input'), true);if (isset($input['entry'][0]['messaging'][0]['sender']['id'])) { 

$sender = $input['entry'][0]['messaging'][0]['sender']['id']; 
$message = $input['entry'][0]['messaging'][0]['message']['text']; 

$jsonData = [ 
    'recipient' => [ 'id' => $sender], 
    'message' => [ 'text' => $message] 
]; 

$url = "https://graph.facebook.com/v2.8/me/messages?access_token=EAAQlAQ9iGz8BABZATCZAN0hd5eyJ2mCFZBR9rDuZARkEmeqh8obC0yZBpiGxFuNbAyi6HHFI2lZCCiILeFNFDuiy2Sb9OHpLfDSIBhCsv7FgglOrzZAqy9yDFlUTZCEHfRfXBYjZCQOj42Vhl4muvyGIqqqsGDP1a0FYcGo9on3QlzgKp5JL8XbZBx"; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($jsonData)); 
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); 
curl_exec($ch); 
curl_close($ch);}?> 
+0

Я думаю, вам просто нужно быть уверенным, что вы захватываете выход curl_exec. в этом примере вы не. – WEBjuju

+0

Я не совсем понимаю ваше предложение. Не могли бы вы объяснить больше? Вы предлагаете мне взять curl_exec(); вывод в переменной и вернуть его? – LearningNew

+0

см. Решение .... $ output = curl_exec ($ ch); echo $ output; – WEBjuju

ответ

0

Я наконец-то приступил к работе. Вот код для него.

<?php if (isset($_GET['hub_verify_token'])) { 
if ($_GET['hub_verify_token'] === 'new_verify_token') { 
    echo $_GET['hub_challenge']; 
    return; 
} else { 
    echo 'Invalid Verify Token'; 
    return; 
}}$input = json_decode(file_get_contents('php://input'), true);if(isset($input['entry'][0]['messaging'][0]['sender']['id'])){ 

$sender = $input['entry'][0]['messaging'][0]['sender']['id']; 
$message = $input['entry'][0]['messaging'][0]['message']['text']; 

$jsonData = [ 
    'recipient' => [ 'id' => $sender], 
    'message' => [ 'text' => $message] 
]; 

$url = "https://graph.facebook.com/v2.8/me/messages?access_token=EAAQlAQ9iGz8BAI5woul1IjMJFVcLW21ZBoZBbeBNaF80wvaPzdZBuDfEJ8NK7PPozUiVNfEjfhZAoWRJAqYHc7yiTA4J1wFOHZCs6DJYcMoPtEBuz6Icw22gNZCSjunjBcUMssXXnkmPEde4J5nU2AarXTUVxsujYPRS7ew97tCiYPDUY4tJSh"; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($jsonData)); 
curl_exec($ch); 
curl_close($ch);}?>