Логика конкурса твитов (Twitter) - PullRequest
1 голос
/ 30 октября 2009

Отказ от ответственности: у меня нет Twitter API опыт, ни я не использовал Twitter до сегодняшнего дня

Мне дали задание создать «конкурс твитов» - если у кого-то есть опыт работы с API Twitter и / или он делал это в прошлом, я буду признателен за любые полезные советы, которые у вас могут быть.

Таким образом, основные правила состоят в том, что для того, чтобы пользователь мог принять участие в конкурсе, указанный пользователь должен следить за твиттером конкурса и ретвитить его с определенным сообщением, например «только что вступил в конкурс на http://foo.com/contest'.

Вопросы:

  1. Чтобы получить участников, я должен проанализировать RSS-поток конкурса, http://twitter.com/statuses/user_timeline/21586418.rss, кажется, перечисляет только несколько последних сообщений, поэтому мне, вероятно, придется взаимодействовать с API Twitter, чтобы получить все сообщения. Может кто-нибудь порекомендовать документацию или страницу, которая покрывает это?

  2. Я не совсем уверен, стоит ли мне сохранять реальных пользователей в локальном XML-файле или полагаться на запросы к API Twitter, если я буду хранить их, у меня будет кеш-копия локальной копии пользователей ... база данных было бы излишним, и если бы я их хранить, было бы лучше в файле XML, верно?

  3. Относительно # 1, должен ли я на самом деле анализировать точное сообщение, которое пользователь должен написать в твиттере, например, «только что вступил в конкурс», точную строку, когда я анализирую фид данных всех твитов? Или я могу использовать какую-нибудь систему тегов?

  4. Относительно # 1, я должен был бы определить, является ли пользователь подписчиком или нет, поэтому я не могу определить, что, анализируя запись / твит, мне пришлось бы запрашивать идентификатор пользователя и получать статистику из людей, которых он / она следует?

Ответы [ 2 ]

3 голосов
/ 30 октября 2009

Вы можете выполнить поиск по URL, но лучшим подходом будет использование хештега :

just entered #supercoolcontest for http://foo.com/contest

Вы можете искать случаи #supercoolcontest, которые содержат требуемый URL-адрес конкурса или любые другие ключевые слова, которые вы можете захотеть. Это позволит пользователям не быть точными в тексте при ретвитировании, а также даст людям возможность рассказать о конкурсе в общем виде, который можно отслеживать.

Вы можете получить все твиты с помощью хэштега, используя API поиска :

http://search.twitter.com/search.json?q=%23supercoolcontest

Вероятно, это наиболее эффективный подход, поскольку вы гарантированно извлекаете только те твиты, которые вам интересны, вместо n твитов от n пользователей, из которых только малая часть имеет какое-либо отношение к вам.

Каждый раз, когда вы чистите этот канал API (каждые n минут), вставляйте новых уникальных пользователей. Я бы использовал базу данных - не сложно и не занимало много времени, чтобы выдержать что-то за столом или двумя. Проще сделать запрос позже.

Чтобы ответить на ваш последний вопрос, вам нужно сделать отдельный вызов API, чтобы определить, следует ли данный пользователь другому пользователю.

2 голосов
/ 11 февраля 2011

Я знаю, что это старый вопрос и, возможно, он больше не относится к медеру, тем не менее, я хочу прокомментировать, что теперь есть еще один способ решения этой проблемы с помощью API Streamming API http://dev.twitter.com/pages/streaming_api. что вы говорите твиттеру, чтобы он отправлял все твиты, которые удовлетворяют некоторым условиям, прямо при их создании.

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

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