2013-03-18 54 views

回答

7

我在PHP-Zend中使用了abraham的oAuth庫(https://github.com/abraham/twitteroauth)。我還將用戶的訪問令牌存儲在數據庫中,並且我已經在下面的函數中獲得了App Rate Limit。

public function getAppLimit($user_id) 
    {   

     $data = $this->getTwitterConnection($user_id); 

     $connection = new TwitterOAuth(self :: CONSUMER_KEY, self :: CONSUMER_SECRET, $data['oauth_token'], $data['oauth_token_secret']); 

     $rate_limit = $connection->get('application/rate_limit_status'); 

     return $rate_limit;   
    } 

現在您可以獲得所有API速率限制。你想搜索這會給下面的數據

["search"] => object(stdClass)#170 (1) { 
     ["/search/tweets"] => object(stdClass)#171 (3) { 
     ["limit"] => int(180) 
     ["remaining"] => int(180) 
     ["reset"] => int(1366107386) 
     } 
    } 

現在對於e.g如果user1的限制是超過比你可以使用用戶2或用戶3訪問令牌,但在此之前,你可以檢查用戶2或用戶3速率限制。現在你可以在上面的搜索結果中看到你會得到['reset']的值。這意味着它會在很長一段時間後重置。當user1限制超過時,您需要保存該重置參數,並在該時間段內使用user2和user3訪問令牌。當15分鐘結束時,您可以再次使用用戶1訪問令牌。如果用戶2和用戶3都在該時間窗口上使用該搜索API,則可能會向用戶1發出警告,說明您可以在一段時間後進行搜索。

希望它有幫助