0

Android で jTwitter 経由でツイートを送信したことのある人はいますか?

私は認証にこだわっています。ユーザーを twitter に正常にリダイレクトし、アプリを承認して、アプリにリダイレクトすることができnew OAuthSignpostClient(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL)ます。次に、Callback URL で指定されたoauth_tokenandを保存oauth_verifierし、OAuthSignpostClient を再度使用して状態を更新しようとします。

OAuthSignpostClient client = new OAuthSignpostClient(TwitterOAuthActivity.CONSUMER_KEY, TwitterOAuthActivity.CONSUMER_SECRET, accessToken, accessTokenSecret);

// Ready to go!
Twitter twitter = new Twitter(null, client);
CharSequence date = DateFormat.format("dd.MM.yyyy @ hh:mm:ss", new Date());
twitter.updateStatus("Yay. It works! " + date);

これは、TwitterException次の原因によるなしで終了します。

05-11 12:24:32.643: E/AndroidRuntime(25897): winterwell.jtwitter.TwitterException$E401: Could not authenticate with OAuth.
05-11 12:24:32.643: E/AndroidRuntime(25897): http://api.twitter.com/1/statuses/update.json (anonymous)
05-11 12:24:32.643: E/AndroidRuntime(25897):    at winterwell.jtwitter.URLConnectionHttpClient.processError(URLConnectionHttpClient.java:425) 
05-11 12:24:32.643: E/AndroidRuntime(25897):    at winterwell.jtwitter.OAuthSignpostClient.post2_connect(OAuthSignpostClient.java:345)

誰かが私の問題がどこにあるのか知っていますか?

4

1 に答える 1

0

コールバック URL からのベリファイアは一時的なキーです。所有している OAuthSignpostClient オブジェクトのロックを解除できます。これを使用して新しい OAuthSignpostClient を構築することはできません。

電話する必要があります:

client.setAuthorizationCode(verifier);
// The client can now be used!
// To use it again, without the oauth dance, store _these_ tokens:
String[] tokens = client.getAccessToken();

作業を簡単にする新しい AndroidTwitterLogin クラスもチェックしてみてください。

AndroidTwitterLogin atl = new AndroidTwitterLogin(myApp, 
                MY_TWITTER_KEY,MY_TWITTER_SECRET,MY_TWITTER_CALLBACK) {                 

    protected void onSuccess(Twitter jtwitter, String[] tokens) {
        jtwitter.setStatus("I can now post to Twitter!");
        // Recommended: store tokens in your app for future use
        // with the constructor OAuthSignpostClient(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret)
    }
};
atl.run();
于 2012-05-18T10:44:38.067 に答える