Messenger Bot in PHP: Keine Antwort zurück

stimmen
2

Ich versuche , einen Test Boten bietet in PHP zu bauen. Mein Web - Haken bekommt Setup perfekt und auch die Seite Abonnement richtig gemacht. Allerdings ist mein Bot nicht auf einen Text in Messenger antworten. Ich habe versucht , App - IDs, Seite IDs zu ändern, nur um sicher zu machen , wenn es Probleme gibt mit irgendetwas davon. Ich habe auch verschiedene Verfahren einschließlich der grundlegenden curl versucht wie hier skizziert: Facebook Chat - Bot (PHP Webhook) Senden mehrerer Antworten

und versucht 2 verschiedene PHP - Bibliotheken: https://github.com/Fritak/messenger-platform https://github.com/pimax/fb-messenger-php

Ich bekomme keine PHP-Fehler, ist die Herausforderung noch erfolgreich bei Facebook-Ende. Mein SSL-Zertifikat ist in Ordnung, aber ich bin nicht in der Lage, die die Bot reagieren zu bekommen.

Jede Hilfe zu diesem Thema wird sehr geschätzt.

Veröffentlicht am 15/04/2016 um 21:46
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
0

Sie müssen Antwort selbst senden , wenn Sie Nachrichten werden reciving (siehe Dokumentation ).

Ich weiß nicht , wie Sie das tun, für Pimax API, sorry, aber für meine API können Sie es auf diese Weise tun:

// Messenger is calling your URL, someone is sending a message...
$messages = $bot->getMessagesReceived();

// Now you need an ID
$userToSendMessage = $messages[0]->messaging[0]->sender->id;

// Send answer
$bot->sendMessage($userToSendMessage, 'Hi!');
Beantwortet am 15/04/2016 um 22:20
quelle vom benutzer

stimmen
1

Überprüfen Sie, dass CURL richtig installiert ist . Versuchen Sie diesen einfachen Gist, https://gist.github.com/visitdigital/58c71acb123870d1ac2ec714d7536587

$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];

// Set this Verify Token Value on your Facebook App 
if ($verify_token === 'YOURVERIFYTOKEN') {
  echo $challenge;
}

$input = json_decode(file_get_contents('php://input'), true);

// Get the Senders Graph ID
$sender = $input['entry'][0]['messaging'][0]['sender']['id'];

// Get the returned message
$message = $input['entry'][0]['messaging'][0]['message']['text'];

//API Url and Access Token, generate this token value on your Facebook App Page

$url = 'https://graph.facebook.com/v2.6/me/messages?access_token=ACCESSTOKEN';
//Initiate cURL.
$ch = curl_init($url);
//The JSON data.
$jsonData = '{
    "recipient":{
        "id":"' . $sender . '"
    }, 
    "message":{
        "text":"The message you want to return"
    }
}';

//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);

//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);

//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

//Execute the request but first check if the message is not empty.
if(!empty($input['entry'][0]['messaging'][0]['message'])){
  $result = curl_exec($ch);
}
Beantwortet am 25/04/2016 um 13:54
quelle vom benutzer

stimmen
0

Können Sie folgende Dinge überprüfen.

  1. Sie sind der Administrator dieser Seite und Sie werden von Admin-Konto zu senden Nachricht nur.
  2. Erhalten Sie Nachrichten von Ihnen auf dem Skript einzuloggen diese Nachrichten in irgendeiner Datei senden zu überprüfen?
  3. Auf der Seite Konto tun Ihnen einige Warnung fb geben wie Ihre Seite msg nicht zu empfangen. Wenn nicht, dann wird msg erfolgreich Sie Problem liegt in Ihrer Antwort gesendet.
  4. Stellen Sie sicher, dass Token Sie erstellt, wenn Webhook Erstellung platziert ist korrekt ist.
  5. Haben Sie den generierten Token kopiert.

Auch plz Code senden.

Beantwortet am 18/06/2016 um 19:24
quelle vom benutzer

stimmen
0

Ich hatte das gleiche Problem, war die Antwort, dass mein Webserver die Anfrage wurde Umleitung (wurde einen Schrägstrich an das Ende der URL hinzufügen).

Beantwortet am 11/09/2016 um 11:14
quelle vom benutzer

stimmen
0

1-überprüfen , dass cURL richtig in Ihrem Computer installiert ist
2-versuchen zu senden manuell diesen Code unten in Ihrem Terminal verwenden, stellen Sie sicher , dass Ihr Zugriffstoken und des Empfängers ID setzen. i hade das gleiche Problem wie Sie .Obwohl ich in meinem Computer installiert curl hatte (Fenster) , es würde die Anfrage nicht senden .when ich Linux geändert , um es funktionierte gut.
Versuche es.

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient": {
    "id": "USER_ID"
  },
  "message": {
    "text": "hello, world!"
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"
Beantwortet am 18/02/2017 um 16:30
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more