Ответы Твиттера в реальном времени? - PullRequest
2 голосов
/ 24 марта 2010

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

Очевидно, что в Твиттере раньше был интерфейс XMPP / Jabber, который предоставлял бы этот тип потока ответов в реальном времени, но он был закрыт.

На мой взгляд, я могу использовать один из следующих вариантов:

REST API

Это будет включать опрос каждые X минут для каждого бота. Проблема в том, что он не в реальном времени, и каждый аккаунт Twitter должен быть опрошен.

API поиска

API поиска позволяет указать в поиске параметр "-to", и ответы на все боты могут быть объединены в поиске, например "-to bot1 ИЛИ -to bot2 ...". Хотя, если у вас сотни ботов, строка поиска будет очень длинной и, вероятно, превысит максимальную длину запроса GET.

Потоковый API

Потоковый API выглядит очень многообещающе, поскольку предоставляет результаты в реальном времени. API позволяет указывать параметры follow и track. follow бесполезен, так как бот не знает, кто будет отправлять ему команды. track позволяет указать ключевые слова для отслеживания. Это может сработать, создав процесс-демон, который подключается к Streaming API и отслеживает все ссылки на имена ботов. Еще раз, поскольку есть много ботов, чтобы отслеживать длину и сложность запроса, может быть проблемой. Другая идея заключается в том, чтобы отслеживать специальный хэштег, такой как #botcommand, и тогда пользователь может отправить команду, используя этот синтаксис @bot1 weather #botcommand. Затем, используя Streaming API для отслеживания всех ссылок на #botcommand, вы получите поток всех команд в реальном времени. Затем можно выполнить дальнейший анализ, чтобы определить, какому боту отправить команду. В этом блоге более подробно рассказывается о Streaming API

Сторонний сервис

Существуют ли какие-либо сторонние компании, которые имеют доступ к брандмауэру Twitter и предлагают данные в режиме реального времени?

Я не исследовал их, но вот несколько, которые я нашел:

Я склоняюсь к использованию потокового API. Есть ли лучший способ получить ответы в режиме реального времени на многие (сотни) учетных записей Twitter?

ОБНОВЛЕНИЕ: Твиттер только что объявил, что в будущем у них появятся пользовательские потоки, которые расширяют API потоковой передачи. Просмотр пользовательских потоков

Ответы [ 4 ]

1 голос
/ 25 марта 2010

Либо отслеживать, либо следовать будет работать для случаев, которые вы описываете. Смотрите http://apiwiki.twitter.com/Streaming-API-Documentation#track для получения подробной информации о том, что на самом деле делает трек. Следующий документ находится на той же странице.

Существуют ограничения скорости передачи в потоковом API, но они связаны с тем, насколько большой кусок общего потока твита вы используете. Для написания такого бота вы не достигнете этих пределов без довольно большой базы пользователей. И когда вы получите эту пользовательскую базу, вы можете подать заявку на повышенные уровни доступа, которые увеличивают скорость.

0 голосов
/ 04 апреля 2010

REST API:

Наиболее полные результаты с наименьшим количеством ложных срабатываний. Включает защищенные статусы, если бот следует за защищенной учетной записью. Если вы будете опрашивать каждые тридцать секунд, это будет довольно близко к реальному времени, и вы будете значительно ниже предела скорости (350 / час), если вы используете api.twitter.com/1 с OAuth.

Потоковый API:

Вам следует избегать API поиска. Он все больше склоняется к популярным, а не к полным результатам.

Потоковый API

Самый быстрый, но также может пропустить некоторые статусы, а также включать ложные срабатывания. Защищенные статусы, например, не включены. Отслеживание имени экрана будет возвращать статусы с этим именем экрана, но также будет включать в себя твиты, которые просто имеют имя экрана в виде строки без знака @, поэтому обязательно отфильтруйте на своей стороне.

0 голосов
/ 25 марта 2010

Предикат track для потокового API на самом деле был бы полезен, потому что, если вы будете следовать идентификаторам пользователей вашего бота, вы получите все сообщения, сделанные вашими ботами, и все другие сообщения, в которых упоминаются ваши боты @usernames (включая @replies) , Он действительно отслеживает все, что публикуется в твиттере, связанные с идентификаторами пользователей, за которыми вы подписываетесь, попробуйте.

0 голосов
/ 24 марта 2010

Есть твиттер firehose , но вам, вероятно, лучше всего использовать потоковый API. Пожарный рукав открыт для Google (попробуйте поискать имя в Твиттере), и, как видно из ссылки, они открывают его всем достаточно скоро.

Вы также хотите получить свой белый список IP-адресов.

Если вы еще этого не сделали, вы можете проверить группу Google для Twitter devs .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...