Я создал ботов Twitter для многих географических мест. Я хочу разрешить пользователям @ -отвечать боту Twitter с помощью команд, а затем отвечать ботам с результатами. Я хотел бы, чтобы бот отвечал пользователю как можно быстрее (в режиме реального времени).
Очевидно, что в Твиттере раньше был интерфейс XMPP / Jabber, который предоставлял бы этот тип потока ответов в реальном времени, но он был закрыт.
На мой взгляд, я могу использовать один из следующих вариантов:
Это будет включать опрос каждые X минут для каждого бота. Проблема в том, что он не в реальном времени, и каждый аккаунт Twitter должен быть опрошен.
API поиска позволяет указать в поиске параметр "-to", и ответы на все боты могут быть объединены в поиске, например "-to bot1 ИЛИ -to bot2 ...". Хотя, если у вас сотни ботов, строка поиска будет очень длинной и, вероятно, превысит максимальную длину запроса GET.
Потоковый API выглядит очень многообещающе, поскольку предоставляет результаты в реальном времени. API позволяет указывать параметры follow
и track
. follow
бесполезен, так как бот не знает, кто будет отправлять ему команды. track
позволяет указать ключевые слова для отслеживания. Это может сработать, создав процесс-демон, который подключается к Streaming API и отслеживает все ссылки на имена ботов. Еще раз, поскольку есть много ботов, чтобы отслеживать длину и сложность запроса, может быть проблемой. Другая идея заключается в том, чтобы отслеживать специальный хэштег, такой как #botcommand
, и тогда пользователь может отправить команду, используя этот синтаксис @bot1 weather #botcommand
. Затем, используя Streaming API для отслеживания всех ссылок на #botcommand
, вы получите поток всех команд в реальном времени. Затем можно выполнить дальнейший анализ, чтобы определить, какому боту отправить команду. В этом блоге более подробно рассказывается о Streaming API
Сторонний сервис
Существуют ли какие-либо сторонние компании, которые имеют доступ к брандмауэру Twitter и предлагают данные в режиме реального времени?
Я не исследовал их, но вот несколько, которые я нашел:
Я склоняюсь к использованию потокового API. Есть ли лучший способ получить ответы в режиме реального времени на многие (сотни) учетных записей Twitter?
ОБНОВЛЕНИЕ: Твиттер только что объявил, что в будущем у них появятся пользовательские потоки, которые расширяют API потоковой передачи. Просмотр пользовательских потоков