Ich habe in den letzten paar Tagen mit der Facebook Messenger Platform herumgespielt und bin auf ein Problem gestoßen. PHP war die Hauptsprache.Facebook Messenger Bot - PHP cURL Nachrichten
Erfolgreich, ich bin in der Lage, ein paar APIs in das System zu implementieren, durch Klartext. (Siehe Bild unten)
Dies ist, was das System wie folgt aussieht:
$input = json_decode(file_get_contents('php://input'), true);
$senderId = $input['entry'][0]['messaging'][0]['sender']['id'];
$message = $input['entry'][0]['messaging'][0]['message']['text'];
$answer = "I don't understand that. Is that another language? Type 'hi' to get started.";
if($message == "hi") {
$answer = "Yo!";
}
All dies kommt aus dem Facebook Messenger Getting Started, wenn Sie nicht vertraut sind.
Was ich jetzt versuche, ist ein Bild durch cURL auf JSON übergeben. Das ist etwas, mit dem ich nicht vertraut bin, aber ich habe zwei großartige Quellen gefunden, die mir bei dieser Aufgabe helfen. POSTing JSON Data With PHP cURL und Create nested list from Multidimensional Array. Hier
ist das Ergebnis:
if($message == "test") {
$data = array("message" => array("attachement" => array('"type" => "image"'),"payload" => array('"url" => "http://example.com"')));
$data_string = json_encode($data);
$ch = curl_init('https://graph.facebook.com/v2.6/me/messages?access_token=TOKEN_GOES_HERE');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$answer = curl_exec($ch);
}
Hier ist die Antwort, die ich erhalten:
weiß ich sicher, dass die Parameter nicht richtig von cURL abgeholt. Allerdings, mein begrenztes Wissen über cuRL, suggeriert etwas anderes. Meine Frage ist, wie könnte ich das noch erreichen? Ich möchte in der Lage sein, ein Bild durch JSON in Messenger zu übertragen, mit PHP.
Vielen Dank für immer zu mir zurück. Ich habe die Benutzer-ID über '$ senderId' übergeben. Das kam von dem ersten Codebeispiel, das ich zur Verfügung gestellt habe. Beide Beispiele sind miteinander kombiniert. Könnte es einen Konflikt mit beiden json_encode geben? – rniller
Also haben Sie den Empfänger übergeben und es kam immer noch als "Der Parameter Empfänger ist erforderlich" zurück? – iownthegame
ja, das ist richtig. – rniller