2012-05-11 26 views
0

有沒有人成功通過Android上的jTwitter發送了推文?如何在Android上通過jTwitter發送推文?

我堅持認證。我可以成功將用戶重定向到Twitter,授權我的應用程序並重定向到我的應用程序new OAuthSignpostClient(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL)。然後,我存儲oauth_tokenoauth_verifier的給予與回調URL,並嘗試再次使用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) 

有沒有人有一個想法,我的問題是什麼?

回答

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();