我使用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:访问级别是“读取,写入和直接消息”
答案 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并分配令牌和机密,但用户授权失败。