0

我使用 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>

我可以使用访问令牌而不是用户名/密码进行 Oauth 吗?

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

4

1 回答 1

0

我使用下一个调用序列:

//#define IF_FALSE_RETURN(a) if(!a) { log("TwitterClient 授权失败!"); 返回;}

    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 并分配令牌和机密,但用户授权失败。

于 2013-01-11T10:03:29.583 回答