Как я могу использовать поток прямых сообщений в Твиттере в качестве входных данных? - PullRequest
1 голос
/ 11 января 2011

Я пишу веб-приложение на PHP и MySQL.Я хочу, чтобы пользователи могли взаимодействовать с сайтом через твиттер.Если вы знакомы с тем, как RememberTheMilk использует Twitter в качестве средства для создания задач и других действий, у вас есть представление о том, чего я хочу достичь.
Взаимодействие будет кратким.Например: User_Jay отправляет прямое сообщение на мою учетную запись Twitter;Мое приложение время от времени проверяет прямой поток сообщений, когда оно видит сообщение User_Jay, приложение распознает ключевую фразу и выполняет немного кода;когда код был выполнен, приложение отправляет прямое сообщение User_Jay.Конец.
Я не знаю, какая библиотека Twitter лучше всего подойдет для этого.Я также не уверен, как получить код, выполняемый для конкретного пользователя, на основе его прямого сообщения.
_
Для справки, пользователи будут создавать учетные записи на реальном сайте, и там они смогут объявить своиtwitter username.
Кроме того, пример кода или ссылки на пример кода, выполняющий подобные вещи, будет принята с благодарностью.

1 Ответ

0 голосов
/ 13 января 2011

Вы можете использовать потоковый API Twitter для прямых сообщений.Во-первых, вам не нужно писать это на PHP.Хотя вы можете писать сайт на PHP, это не значит, что вы должны использовать PHP для фонового процесса получения твитов.

Во-первых, вам нужен код, который обрабатывает данные от пользователя API потоков .Я не уверен, что есть один для PHP, но phirehose подходит близко.Доступен патч для поддержки пользовательских потоков.

Если вы не можете найти библиотеку PHP для поддержки пользовательских потоков, я бы посоветовал вам рассмотреть возможность использования Ruby.Писать демоны в Ruby довольно просто, и вы можете использовать библиотеку типа twitterstream , которая поддерживает пользовательские потоки.

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

Использование потокового API очень похоже на использование API извлечения: вы получаете блоб JSON с полным наборомпар ключ-значение.Как вы решаете, с каким пользователем вы работаете?Что ж, вы посмотрите на ключ пользователя и найдете его имя пользователя.

Вам также потребуется придумать синтаксис для взаимодействия с сайтом с помощью DM, и вам нужно будет создать либо регулярное выражение на основепарсер, или, возможно, использовать лексер.Вы также захотите проверить это довольно сложно, используя модульные тесты и так далее.Вы принимаете текст от пользователя: не доверяйте ему!

Потоковый API - не единственный способ сделать это: вы также можете запустить задание cron и проверить API на наличие новых сообщений.Это проще, но не так хорошо.

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