Twitter API返回错误220

时间:2013-12-26 14:10:26

标签: php twitter

使用此PHP库:https://github.com/abraham/twitteroauth

$twitteroauth = new TwitterOAuth(OAUTH_TWITTER_CONSUMER_KEY, OAUTH_TWITTER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);  
$access_token = $twitteroauth->getAccessToken($_GET['oauth_verifier']);
$_SESSION['access_token'] = $access_token; 
$user_info = $twitteroauth->get('account/verify_credentials');

有时会返回错误代码220

object(stdClass)#58 (1) {
    ["errors"]=> array(1) {
        [0]=> object(stdClass)#59 (2) {
            ["message"]=> string(53) "Your credentials do not allow access to this resource"
            ["code"]=> int(220)
        }
    }
 }

奇怪的是,有时它工作正常。此外,Twitter API v1从未发生过这种情况。它仅在更新到v1.1后才开始。

该应用不会尝试代表用户执行任何操作,也不会尝试获取任何信息,如时间轴或朋友列表。它只是试图验证用户。

当给出错误220时,我记录@_SESSION,我得到了这个:

#1 有时会提供此

array(4) {
    ["oauth_token"]=> string(40) "SOME_RANDOM_STR_THAT_LOOKS_LIKE_A_TOKEN"
    ["oauth_token_secret"]=> string(41) "SOME_RANDOM_STR_THAT_LOOKS_LIKE_A_SECRETE_TOKEN"
    ["access_token"]=> array(1) {
        ["Invalid request token"]=> string(0) ""
    }
    [...] => array(...) {"OTHER_DATA_RELATED_TO_MY_WEBAPP"}
}

#2 有时这个

array(5) {
    ["oauth_token"]=> string(41) "xxxxxxxxx" 
    ["oauth_token_secret"]=> string(41) "xxxxxxxxxx"
    ["access_token"]=> array(8) {
            [string(144) ""1.0" encoding="UTF-8"?> Invalid / expired Token /oauth/access_token?oauth_consumer_key=xxxxxxxxxxxxx"
            ["oauth_nonce"]=> string(32) "xxxxxxxxx"
            ["oauth_signature"]=> string(28) "xxxxxxxxxxxxx" 
            ["oauth_signature_method"]=> string(9) "HMAC-SHA1" 
            ["oauth_timestamp"]=> string(10) "1388026884"
            ["oauth_token"]=> string(41) "xxxxxxxxx"
            ["oauth_verifier"]=> string(42) "xxxxxxxx"
            ["oauth_version"]=> string(22) "1.0 "
    }
    [...] => array(...) {"OTHER_DATA_RELATED_TO_MY_WEBAPP"}
    ["User"]=> array(7) {"ALSO_RELATED_TO_MY_WEBAPP"}
}

在这个#2场景中,User在应用程序上有该用户的信息,它实际上有Twitter上的推特ID和头像等信息。这意味着该用户已经完全使用Twitter登录,webapp为他/她创建了一个帐户,但他/她现在正陷入这220错误。

0 个答案:

没有答案