twitcurl OAuth - 错误89:无效/过期令牌

时间:2012-11-30 08:56:53

标签: c++ linux twitter twitter-oauth

我使用twitcurl到OAuth twitter并发送直接消息。我设置了所有键:

 twitCurl twitterObj;
    twitterObj.getOAuth().setConsumerKey(t_consumer_key);
    twitterObj.getOAuth().setConsumerSecret(t_consumer_secret);
    twitterObj.getOAuth().setOAuthTokenKey(t_access_token);
    twitterObj.getOAuth().setOAuthTokenSecret(t_access_token_secret);
    twitterObj.accountVerifyCredGet();

The twitterObj.getLastWebResponse(replyMsg); return error 89:
    <error code="89">Invalid or expired token</error>

我可以使用访问令牌代替用户名/密码吗?

PS:访问级别是“读取,写入和直接消息”

1 个答案:

答案 0 :(得分:0)

我使用下一个调用序列:

// #define IF_FALSE_RETURN(a)if(!a){log(“TwitterClient authorizetion failed!”);返回;}

    twitterCurl->setTwitterUsername(usr);
    twitterCurl->setTwitterPassword(pwd);

    twitterCurl->getOAuth().setConsumerKey(twitterConsumerKey);
    twitterCurl->getOAuth().setConsumerSecret(twitterConsumerSecret);

    std::string authorizedUrl;

    IF_FALSE_RETURN( twitterCurl->oAuthRequestToken(authorizedUrl)  );
    IF_FALSE_RETURN( twitterCurl->oAuthHandlePIN(authorizedUrl)     );
    IF_FALSE_RETURN( twitterCurl->oAuthAccessToken()                );

    twitterCurl->getOAuth().getOAuthTokenKey(accessTokenTwitter);
    twitterCurl->getOAuth().getOAuthTokenSecret(accessSecretTwitter);

IF_FALSE_RETURN - 非常重要! 如果一个方法返回false,则下一个调用可以返回true并分配令牌和机密,但用户授权失败。