#php #api #twitter
#php #API #Twitter
Вопрос:
допустим, мне нужно знать, сколько людей ищут «что-то» в минуту.
example 123 people is tweeting "something" per minute
есть ли способ сделать это?
Спасибо, что заглянули в
Адам Рамадан
Комментарии:
1. Вы смотрели на twitter api? dev.twitter.com/doc
2. да, у меня есть, но я не знаю, с чего начать, чтобы делать «в минуту». есть предложения?
Ответ №1:
Лучше всего использовать API потоковой передачи Twitters. Я создал простую PHP-оболочку вокруг него (tweetstream, требуется PHP 5.3). Это абсолютно не закончено, но должно навести вас на некоторые идеи.
Использование Streaming API позволяет отслеживать твиты, содержащие определенные ключевые слова. Просто вставьте эти твиты в базу данных вместе со временем публикации. Оттуда тривиально выполнять ваши вычисления.
Пример использования:
$streamer = new TweetStream();
$streamer->setCredentials('your username', 'your password');
$streamer->setCallback(function($message) {
$message = sprintf('%s says: %s', $message->user->screen_name, $message->text);
mysql_query('INSERT INTO tweets(message, timestamp) VALUES(.., ..)');
});
$streamer->track('something');
Ответ №2:
Лучшее, что я могу вам предложить, если у вас уже есть код, извлекающий твиты для поискового запроса, — это настроить базу данных и сохранить твиты в, с timestamp
. Затем вам просто нужно выполнить простой запрос и извлечь время начала из первой записи, а время окончания из последней записи и количество записей в Twitter для этого элемента.
Оттуда вы просто вычисляете, беря количество твитов, деленное на количество минут. И, виола, у тебя есть количество твитов в минуту. Для получения дополнительной информации о том, как извлекать твиты, смотрите Документацию Twitter API.
Ответ №3:
Не уверен, существует ли реализация Stream (SQL) для PHP — или, если ваши языковые требования гибкие, — но недавно я реализовал нечто подобное с помощью Esper / JRuby / TweetStream, используя информацию из этой статьи:
http://www.igvita.com/2011/05/27/streamsql-event-processing-with-esper/