2011-08-05 31 views
0

retweeters的名單有沒有辦法使用流API怎樣用流API

REST API已經得到retweeters ID列表 「GET狀態/:ID/retweeted_by/IDS」 爲獲得retweeters名單

流式API有一個「狀態/轉推」,但不是一般可用的資源。

所以這個想法是使用「狀態/過濾器」和過濾器基於鳴叫ID。

謝謝

回答

1

在通過流API返回的結果,retweeters(如果有的話)在這裏列出:

$retweeters = $tweet->{'retweeted_status'}->{'activities'}->{'retweeters'}; 

這裏有一個網頁,其中顯示retweeters的ID與過濾流搜索「愛」一詞 - 確保使用您的Twitter用戶名和密碼。請注意,API僅返回前100個轉發者。

<html><body> 
<?php 
    echo(str_pad("START<br>",2048)); 
    @ob_flush(); 
    flush(); 

    $opts = array(
     'http'=>array(
      'method' => "POST", 
      'content' => 'track=love', 
      'header' => "Content-Type: application/x-www-form-urlencoded\r\n" 
     ) 
    ); 

    $context = stream_context_create($opts); 
    $username = 'your_twitter_username'; 
    $password = 'your_twitter_password'; 
    while (1){ 
     $instream = fopen('http://'.$username.':'.$password.'@stream.twitter.com/1/statuses/filter.json','r' ,false, $context); 
     while(! feof($instream)) { 
      if(! ($line = stream_get_line($instream, 20000, "\n"))) { 
       continue; 
      }else{ 
       $tweet = json_decode($line); 
       $retweeters = array(); 
       $retweeters = $tweet->{'retweeted_status'}->{'activities'}->{'retweeters'}; 

       //We store the new post in the database, to be able to read it later 
       if (sizeof($retweeters) > 0) { 
        echo("<br><br>"); 
        print_r($retweeters); 
       } 
       @ob_flush(); 
       flush(); 
      } 
     } 
    } 
?> 
</html></body>