Несовместимая доставка веб-крюка API активности учетной записи Twitter - PullRequest
0 голосов
/ 20 февраля 2020

Я успешно настроил бота DM с API активности аккаунта. Все работает очень хорошо, за исключением того, что иногда сообщение, отправляемое боту (через веб-интерфейс Twitter или мобильное приложение), не запускает веб-крючок на мой сервер. Сообщения могут быть ответами с быстрым ответом или простым текстом.

Причина, очевидно, не в простоях моего сервера, поскольку я пытался установить разговор между двумя зарегистрированными пользователями webhook (поэтому мой сервер получает webhooks для обоих пользователей) и для того же отправленного сообщения я успешно получил веб-крючок отправителя (пользователя), но не для получателя (бота). Поскольку бот еще не запущен, причина не в перегрузке сообщений. В настоящее время только 2 пользователя ведут разговоры. По моему опыту, около 10% сообщений «потеряно».

Я использую бесплатный («песочница») уровень активности учетной записи API, но, насколько я понимаю, единственные различия между бесплатной и платной версиями заключаются в большем количестве подписок (меня устраивает 15) и « Повторные попытки ». Что касается этой функции, то указано , что «API активности учетных записей предоставляет функцию повторных попыток, когда веб-приложение клиента не возвращает ответ« успех »200 для события webhook активности учетной записи». В нем четко говорится, что провал события касается стороны клиента, а не стороны Twitter. Учитывая эту проблему (мой сервер вообще не получает webhook), нет никакой гарантии, что каждое событие будет доставлено, даже если в платном плане.

Это большое неудобство для ботов, так как кнопка может щелкнуть только один раз, поэтому пользователь должен повторить разговор с самого начала (кроме того факта, что бот "не работает" ...)

Итак, мои вопросы:

  • Кто-нибудь здесь испытывает эту проблему?
  • Является ли это «ошибкой или функцией» бесплатного API активности учетной записи? Я имею в виду, что случайным образом бесплатный уровень не запускает веб-крючок нарочно (даже если он не указан в документации)?
  • Есть ли способ увидеть или измерить сбои веб-крюка на стороне Twitter через панель инструментов? например?
  • Предполагается, что события могли бы быть более точными, если учетная запись подтверждена (с синим значком) или достигла порога числа подписчиков? Обработка может отличаться из-за потенциального всплеска событий, поэтому они отслеживаются с большим количеством ресурсов, а значит, более надежны?

Я уже создаю topi c в официальный форум в Твиттере, и в этом же случае есть еще один человек, но официального ответа от Твиттера пока нет.

Большое спасибо!

BR, Саймон

1 Ответ

0 голосов
/ 24 февраля 2020

У меня есть официальный ответ из Твиттера:

К сожалению, невозможно достичь 100% скорости доставки, когда есть только 1 попытка доставки для события, поэтому мы делаем повторные попытки (и даже в этом случае повторные попытки также не являются гарантией). Вещи могут go ошибаться; может быть, внутренние проблемы в центрах обработки данных Twitter, проблемы с маршрутизацией в inte rnet, проблемы с хостингом в вашем webhook и т. д. c.

Так что в настоящее время, похоже, что получите 100% успеха при создании бота в Twitter.

Полный ответ можно прочитать здесь .

...