假設我有2個用戶user1和user2的Twitter訪問令牌。每個人都有180個電話來獲取特定搜索的推文。交互使用Twitter訪問令牌(即爲另一個用戶使用1個用戶令牌)?
假設user1在15分鐘的時間內使用了所有180個電話,我的應用程序是否可以使用user2的訪問令牌,因此user1可以撥打其他電話?這當然假設user2在那個時刻不使用他/她的訪問令牌。
假設我有2個用戶user1和user2的Twitter訪問令牌。每個人都有180個電話來獲取特定搜索的推文。交互使用Twitter訪問令牌(即爲另一個用戶使用1個用戶令牌)?
假設user1在15分鐘的時間內使用了所有180個電話,我的應用程序是否可以使用user2的訪問令牌,因此user1可以撥打其他電話?這當然假設user2在那個時刻不使用他/她的訪問令牌。
我在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發出警告,說明您可以在一段時間後進行搜索。
希望它有幫助