[英]How do I the max limit (3200 tweets) using Twitter's API (1.1)
我已經能夠做到,但是它的方式相當“丑陋”。
我在重構時面臨的一個問題是我需要調用“ max_id”,但是我需要使用占位符,直到我進行第一個調用。 我已經嘗試過為$ max_id使用'null'和'',但是都沒有用。 另外,我有一種感覺,無需使用手動的“ for”循環就可以編寫它。
到目前為止,這是我的代碼:
$i = 1;
$content = $connection->get('statuses/user_timeline', array('screen_name' => 'username', 'count' => '200'));
foreach ($content as $item) {
echo $i . " : " . $item->text;
echo("<hr>");
$i++;
}
$lastTweet = end($content);
$max_id = $lastTweet->id_str;
for ($l = 0; $l<15; $l++) {
$content = $connection->get('statuses/user_timeline', array('screen_name' => 'username', 'count' => '200', 'max_id' => $max_id));
foreach ($content as $item) {
echo $i . " : " . $item->text;
echo("<hr>");
$i++;
}
$lastTweet = end($content);
$max_id = $lastTweet->id_str;
}
任何幫助,將不勝感激。
我知道它並不漂亮,但是在循環內部您不能只設置一個測試變量。 就像是第一次通過實例進行操作,還是會破壞重構點?
$maxID = false;
if(!$maxID) $content = $connection->get('statuses/user_timeline', array('screen_name' => 'username', 'count' => '200'));
else { $content = $connection->get('statuses/user_timeline', array('screen_name' => 'username', 'count' => '200', 'max_id' => $max_id));
$maxID = true; }
如果您不小心,則可以使用一個while loop()來代替返回循環,而while loop()會使返回的項目計數減少,然后只需將該變量增加每次通過時返回的推文數量即可。 只是永遠不要意外地讓您的while循環永遠運行,或者您可以暫時告別Twitter api請求。
$countTweets = 0;
while($countTweets < 3200)
{ //code for your calls, do what you gotta do
$countTweets += count($content);
}
我使用與您所擁有的非常相似的東西,除了我只是將下一組推文合並到一個總數組中,然后處理大量推文。 我也只測試合並數組的總數,而不是添加到count變量中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.