бесконечный цикл в WebHook

Я делаю бот-мессенджер на Facebook. После того, как вы запустите его, он позвонит в WebHook.
К сожалению после первого запуска не перестанет бросать один и тот же вызов с одинаковыми параметрами.
Настройки:

  • message_deliveries;
  • message_reads;
  • Сообщения;
  • messaging_optins;
  • messaging_postbacks.

Исходный код такой: https://github.com/Ellusu/nuraghebot-facebookmessenger/blob/master/index.php

Где я не прав?
Почему только один звонок?

5

Решение

По вашему коду я решил, что вы не можете настроить свой webhook, поэтому из документация

В URL вашего веб-крючка добавьте код для подтверждения. Ваш код должен
ожидать токен подтверждения, который вы определили ранее, и ответить
вызов отправлен обратно в запрос на подтверждение. Нажмите «Подтвердить и
Кнопка «Сохранить» в подписке на новую страницу, чтобы позвонить вашему веб-крюку с
ПОЛУЧИТЬ запрос.

Итак, для успеха PHP с настройкой webhook вы должны вернуть hub_challenge параметр.

Определите $ verify_token с вашим токеном и добавьте что-то вроде:

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

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

После успешной настройки вы можете удалить этот код из вашего скрипта.

Или, если ваш webhook уже подключен:

Вы должны пропустить любой читать а также Доставка сообщения, как это:

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;
}
}
}

Или вы можете отменить выбор message_reads & message_deliveries чекбоксы в разделе Подписка на страницы в настройках вашей страницы Facebook / Webhooks.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector