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

Hen*_*hiu 3 twitter

假设我为user1和user2提供了2个Twitter访问令牌.每个人都有180个电话来获取特定搜索的推文.

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

Vir*_*ani 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;        
    }
Run Code Online (Sandbox Code Playgroud)

现在您获得所有API速率限制.你想要搜索它会给出以下数据

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

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

希望能帮助到你