← Вернуться к списку тем

edited_message спамит webhook

Привет народ. Кто нибудь сталкивался с проблемой: отредактировал сообщение в диалоге с ботом, теперь телеграмм постоянно дергает вебхук " 'edited_message': {'entities': [{'length': 6, 'type': 'bot_command', 'offset': 0}], 'text':"
Как же это остановить?

Ответы


  • iMakeBots [01.06.2020 в 22:00 → Andrey Makrushin]
    Как редактируете? Через инлайн-кнопку? Callback_query?
  • Andrey Makrushin [01.06.2020 в 22:06 → iMakeBots]
    На клавиатуре нажал стрелку вверх, появилась последняя введенная команда с надписью редактировать. Собственно я и отредактировал. Теперь вот телеграм щлет сообщения вроде таких:

    {'update_id': 1100734, 'edited_message': {'entities': [{'length': 6, 'type': 'bot_command', 'offset': 0}], 'text': '/start 456', 'chat': {'username': 'andrey_makrushin', 'typ ..... ... .. . .576, 'edit_date': 1591033728}}
  • iMakeBots [01.06.2020 в 22:09 → iMakeBots]
    /start 456 - эту команду шлете?
  • Andrey Makrushin [01.06.2020 в 22:12 → iMakeBots]
    Ну да. Отправил её повторно после первичной установки бота. Затем очистил историю, прошло уже чсов 5 он все спамит.. Сложно дебажеть на серваке)
  • iMakeBots [01.06.2020 в 22:18 → Andrey Makrushin]
    Получается, что телеграм когда получил команду отправил данные на вебхук, в ответ получил не критичную ошибку, которая имеет код не 200, и при этом позволяет исполнить скрипт.

    И теперь он будет слать вам повторные данные пока не получит в ответ код 200.

    Можете проверить количество зависших запросов через getwebhookinfo в параметре pending_update_count в норм режиме должно быть значение 0

    Скинуть можно очень просто в самом начале скрипта напишите return true и проверяйте getwebhookinfo пока зависшие запросы не обнулятся
  • Andrey Makrushin [01.06.2020 в 22:25 → iMakeBots]
    Большое спасибо. return true помог.
  • Andrey Makrushin [02.06.2020 в 15:42 → iMakeBots]
    Более подробно решил описать свой косяк. В обычном случае вебхук получает {'message': {'entities': [{... . В моем случае была обработка такого сообщения и вывод {"ok": true}, 200. Но в этот раз у меня завис запрос редактирования "edited_message". Соответственно возникал key error и ошибка 500. Таким образом залипало на этой ошибке.