2012-09-07 33 views
1

我有一個Twitter的API PHP腳本成功地吐出我的追隨者的最後100如何使用PHP,Twitter API獲取更多或全部追隨者?

$flwrs_url = "http://api.twitter.com/1/statuses/followers/exampleuser.json"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $flwrs_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$curlout = curl_exec($ch); 
curl_close($ch); 
$response = json_decode($curlout, true); 

foreach($response as $friends){ 
    $id = $friends['id']; 
$screen_name = $friends['screen_name']; 
.... 

(我用exampleuser,而不是我自己的帳戶) 如何擴展這包括多個或所有我的追隨者?

謝謝

回答

0

按照Twitter API DocumentationGET followers/ids請求應該返回到5000名追隨者。

但是,如果不是所有追隨者都由API返回,則應答中應該有一個next_cursor元素,可用於檢索下一批追隨者。您只需將next_cursor的值作爲cursor添加到請求中(另請參閱API文檔)。

請注意,您正在使用最近已被棄用的Twitter API版本1。也就是說,它可能會在明年初停止工作。您應該儘快升級到Version 1.1。有新的指導原則,其中之一就是所有的請求都必須通過oAuth驗證。

+0

感謝您的回答弗洛裏安。順便說一句,我認爲我找到了正確的方式去做我正在尋找的東西。糾正我,如果我錯了 –

0

感謝您的回答弗洛裏安。順便說一句,我認爲我找到了正確的方式去做我正在尋找的東西。如我錯了請糾正我。

使用後:

$code=$tmhOAuth->request('GET', $tmhOAuth->url('1/followers/ids'), 
      array('screen_name' => $user, 'cursor' => $cursor)); 

技術抓住所有5000名跟隨(用戶ID)。我使用下面的代碼在同一時間搶的100批次(用戶詳細信息):

$status_url = "http://api.twitter.com/1/users/lookup.json?user_id="; 
$lastNum=$last; // $lastNum=100; 
$i=$first;  // $i=0; 
while($i<$lastNum){ 
    if ($i==($lastNum-1)){ 
     $status_url = $status_url . "$followers[$i]"; 
    }else{ 
     $status_url = $status_url . "$followers[$i],"; 
    } 

    $i++; 
} 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $status_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$curlout = curl_exec($ch); 
curl_close($ch); 
$response = json_decode($curlout, true); 

$i = 0; 
foreach($response as $friends){ 
    $id = $friends['id']; 
    $screen_name = $friends['screen_name']; 
    $name = $friends['name']; 
    $thumb = $friends['profile_image_url']; 
    $url = $friends['screen_name']; 
    $location = $friends['location']; 
    $description = $friends['description']; 
    echo "$i) $id $screen_name $name $location $description<br />"; 
    $i++; 
} 

我意識到我需要把「休眠」,在這些「100批次」之間,但我不相當確定使用多少。

+0

首先,你一定要使用Twitter API的1.1版本,因爲1.0將很快被棄用。 Twitter開發者網站說,你每15分鐘就會收到180個API調用(在1.0版本中,每小時調用350次)。如果我理解正確,你應該能夠每15分鐘查看180000個用戶,這應該足夠了。由於您可以在15分鐘內發出180個請求,因此我會在請求之間休眠5秒鐘。 –

+0

順便說一下,在API的1.1版本中,您還必須使用oAuth執行查找請求,即您應該使用'$ tmhOauth'發送它們。 –

相關問題