2016-01-22 126 views
4

我正在使用Abraham推文庫來搜索推文。一切正常,但問題是,我的搜索返回超過100個結果。Twitter搜索API - since_id和max_id生成更多結果

是否有一種簡單的方法來循環使用,如使用API​​的較新v1.1進行分頁?

我需要能夠通過從特定搜索的搜索讓所有的鳴叫,然後通過每個結果的循環創建數組

這是我目前有:

$connection = new Abraham\TwitterOAuth\TwitterOAuth(
    ‘KEY', 
    ‘KEY', 
    ‘KEY', 
    ‘KEY' 
); 

$statuses = $connection->get("search/tweets」, 
    array(
     "q"     => ’something', 
     "result_type"  => "recent", 
     "include_entities" => true, 
     "count"    => 100 
    ) 
); 
// possibly put into a loop - paging 

var_dump($statuses->statuses)給了我一個對象數組(012) 因此,讓我說我的搜索詞返回298結果。基於我上面的代碼,我可以這麼說3 pages

我想知道最好的方法是什麼?

搜索條件我正在使用一些什麼流行的,也許每分鐘100。我正在看通過cronjob運行,每小時,讓我們說,所以我可以在我的陣列中有600-1000條推文

我已經看到了since_idmax_id,但不知道如何使用這些在我的應用程序。

我期待的鳴叫存儲在數據庫中,所以我可能會使用since_id和/或「max_id」

感謝

回答

1

search/tweets(沒有任何since_idmax_id)返回最新的鳴叫按照時間順序從最近的推文開始。因此,您需要保存返回的最後一條推文的id。要獲取推文的下一個「頁面」,只需重複該請求,還包括max_id設置爲您保存的值id

根據您的代碼段,我想請求是這樣的:

$statuses = $connection->get("search/tweets」, 
    array(
     "q"     => ’something', 
     "result_type"  => "recent", 
     "include_entities" => true, 
     "count"    => 100, 
     "max_id"   => <VALUE OF LAST ID> 
    ) 
); 
+0

感謝您的反饋意見。我有一個'since_id',用於獲取最初的推文(100)。是否有一種簡單的方法可以使用此查詢的'max_id'來獲取後續頁面?即推文101-199,然後200-298成陣列? –

+0

第一次查詢後,請執行以下操作:1)從查詢中刪除'since_id',2)在第100條tweet>中添加「'max_id」= Jonas

+0

太棒了!我想我現在有一個工作版本。我在第一個請求中使用'since_id',然後使用後續的'max_id'獲取下一組推文。這一切都在一段時間循環,似乎工作! –