5 votes

boucle infinie dans un WebHook

Je fais un bot pour la messagerie de Facebook. Après l'avoir démarré, il fait un appel à WebHook. Malheureusement, après le premier démarrage, il ne cesse de lancer le même appel avec les mêmes paramètres. Les paramètres sont :

  • messages_délivrés ;
  • messages_reads ;
  • messages ;
  • messageries_optins ;
  • messagerie_postbacks.

Le code source est le suivant : https://github.com/Ellusu/nuraghebot-facebookmessenger/blob/master/index.php

Où ai-je tort ? Pourquoi un seul appel ?

2voto

Ancle Points 262

Par votre code j'ai décidé que vous ne pouvez pas configurer votre webhook, donc de documentation

A l'URL de votre webhook, ajoutez le code pour la vérification. Votre code doit attendre le jeton de vérification que vous avez défini précédemment, et répondre avec le renvoyé dans la demande de vérification. Cliquez sur le bouton "Vérifier et Save" dans l'abonnement à la nouvelle page pour appeler votre webhook avec une demande GET. requête GET.

Donc, pour que PHP réussisse la configuration du webhook, vous devez retourner défi du hub paramètre.

Définissez $verify_token avec votre jeton et ajoutez quelque chose comme :

if (!empty($_REQUEST['hub_mode']) && $_REQUEST['hub_mode'] == 'subscribe' && $_REQUEST['hub_verify_token'] == $verify_token) {

    // Webhook setup request
    echo $_REQUEST['hub_challenge']; exit;
}

Après une configuration réussie, vous pouvez supprimer ce code de votre script.

Ou, si votre webhook est déjà accroché :

Vous devriez éviter de lire y livraison des messages, comme ceci :

if (!empty($input['entry'][0]['messaging'])) {
    foreach ($input['entry'][0]['messaging'] as $message) {

        // Skipping delivery messages
        if (!empty($message['delivery'])) {
            continue;
        }

        // Skipping read messages
        if (!empty($message['read'])) {
            continue;
        }
    }
}

Ou bien, vous pouvez désélectionner lectures de messages & messages_livraisons dans la section Abonnement de la page des paramètres de votre page Facebook/Webhooks.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X