可互换地使用Twitter访问令牌(即,为另一个用户使用1个用户的令牌)?

时间:2013-03-18 22:16:51

标签: twitter

假设我有2个Twitter访问令牌,用于user1和user2。每个人都有180个电话来获取特定搜索的推文。

假设user1在15分钟的窗口中使用了所有180个呼叫,我的应用是否可以使用user2的访问令牌,以便user1可以进行额外的呼叫?这当然是假设user2当时没有使用他/她的访问权限。

1 个答案:

答案 0 :(得分:7)

我在PHP-Zend中使用了亚伯拉罕的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)
      }
    }

现在,例如,如果user1限制超过了您可以使用用户2或用户3访问令牌,但在此之前您可以检查用户2或用户3速率限制。现在您可以在上面的搜索结果中看到,您将获得['reset']值。这意味着它将在很长一段时间后重置。当user1限制超过时,您需要保存该重置参数,而不是在该段时间内使用user2和user3访问令牌。当15分钟结束时,您可以再次使用用户1访问令牌。并且如果user2和user3都在该时间窗口上使用该搜索API,您可以向用户1发出警告,告知您可以在一段时间后进行搜索。

希望有所帮助