簡體   English   中英

如何使用Twitter的API(1.1)設置最大限制(3200條推文)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM