如何在Android上使用jTwitter发送推文?

如何在Android上使用jTwitter发送推文?,android,service,oauth,signpost,jtwitter,Android,Service,Oauth,Signpost,Jtwitter,有没有人在Android上通过jTwitter成功发送推特 我被认证卡住了。我可以成功地将用户重定向到twitter,授权我的应用程序,并使用新的OAuthSignPostClient消费者密钥、消费者密钥、回调URL重定向到我的应用程序。然后,我存储与回调URL一起提供的oauth_令牌和oauth_验证器,并尝试再次使用OAuthSignpostClient更新状态: OAuthSignpostClient client = new OAuthSignpostClient(TwitterOA

有没有人在Android上通过jTwitter成功发送推特

我被认证卡住了。我可以成功地将用户重定向到twitter,授权我的应用程序,并使用新的OAuthSignPostClient消费者密钥、消费者密钥、回调URL重定向到我的应用程序。然后,我存储与回调URL一起提供的oauth_令牌和oauth_验证器,并尝试再次使用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)

有人知道我的问题在哪里吗?

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