Общий счетчик твитов на основе хэштегов - PullRequest
1 голос
/ 16 июля 2011

Я создаю событие на основе текущего количества твитов в php, которое содержит определенный хэштег.На главной странице у меня есть счетчик, который говорит: «пока что твиты: ххх».Я использовал этот скрипт php:

global $total, $hashtag;
$hashtag = '#somehashtag';
$total = 0;
function getTweets($hash_tag, $page) {
   global $total, $hashtag;
   $url = 'http://search.twitter.com/search.json?q='.urlencode($hash_tag).'&';
   $url .= 'page='.$page;    
   $ch = curl_init($url);
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
   $json = curl_exec ($ch);
   curl_close ($ch);

   $json_decode = json_decode($json);        
   $total += count($json_decode->results);    
   if($json_decode->next_page){
      $temp = explode("&",$json_decode->next_page);        
      $p = explode("=",$temp[0]);                
      getTweets($hashtag,$p[1]);
   }        
}   
getTweets($hashtag,1);

Далее я сохраняю результат в своей базе данных:

$updateCount = "UPDATE tweets SET currentcount = '$total'";   
$doQuery = mysql_query($updateCount, $con) or die(mysql_error());

Этот скрипт выполняется cronjob, который запускает скрипт каждые 2 минуты.Работает нормально.Но этот скрипт возвращает только 1500 твитов, так как твиттер больше не позволяет.

Как я могу отслеживать текущее количество твитов?Я знаю, что нет способа превзойти все твиты API Twitter.Но, может быть, через время или проверки базы данных?Заранее спасибо!

1 Ответ

2 голосов
/ 16 июля 2011

Как бы я это сделал:

  • сохранить последний полученный твит в базе данных с текущим счетчиком.
  • при следующем запуске получите твиты с этого твита, добавьте количество твитов к счетчику и обновите последнюю запись твита новым последним твитом.
  • пена, промыть, повторить.

Одна проблема с подходом: если за менее чем 2 минуты более 1500 твитов, некоторые не будут засчитаны.

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

since_id: возвращает твиты с идентификаторами статуса, превышающими указанный идентификатор.

API поиска в Твиттере

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