Mon bot Facebook fonctionne mais il renvoie plusieurs messages après mon message initial. Ceci est mon script webhook (je l'apprécie est un exemple de travail très rude):Facebook Chat bot (PHP webhook) envoi de plusieurs réponses
$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];
if ($verify_token === 'MY_VERIFICATION_TOKEN') {
echo $challenge;
}
$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'];
//API Url
$url = 'https://graph.facebook.com/v2.6/me/messages?access_token=<my-token>';
//Initiate cURL.
$ch = curl_init($url);
//The JSON data.
$jsonData = '{
"recipient":{
"id":"'.$sender.'"
},
"message":{
"text":"Hey Lee!"
}
}';
//Encode the array into JSON.
$jsonDataEncoded = $jsonData;
//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, $jsonDataEncoded);
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
//Execute the request
$result = curl_exec($ch);
Obtenir ces erreurs étranges: au lieu '
Obsolète: automatiquement peuplant HTTP_RAW_POST_DATA $ est dépréciée et seront supprimées dans une version ultérieure. Pour éviter cet avertissement, réglez 'always_populate_raw_post_data' sur '-1' dans php.ini et utilisez plutôt le flux d'entrée php: //. dans inconnu en ligne
Attention: Impossible de modifier les informations d'en-tête - en-têtes ont déjà été envoyés Unknown en ligne
{ "erreur": { "message": "Accès non valide OAuth jeton. "," type ":" OAuthException "," code ": 190," fbtrace_id ":" BsNG \/mJVYem "}} ^ Comme – Volatil3
Vous devez mettre exit(); après l'écho $ challenge; ligne – mileusna
Je suis également confronté à un problème similaire, mais j'ai ajouté un chèque pour le message vide (livraison). Quand j'ai vérifié l'URL du webhook, il semble que l'on tape deux fois. J'utilise ngrok avec le serveur local comme webhook et je peux clairement voir que l'URL de webhook est accédée deux fois avec le champ de message rempli les deux fois. Une idée?? – thekosmix