0

twitcurl を使用して twitter を OAuth し、ダイレクト メッセージを送信します。すべてのキーを設定します:

 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-非常に重要です!1つのメソッドがfalseを返した場合、次の呼び出しはtrueを返し、トークンとシークレットを割り当てることができますが、ユーザー認証は失敗します。

于 2013-01-11T10:03:29.583 に答える