2012-05-11 4 views
0

Кто-нибудь когда-либо успешно отправил твит через jTwitter на Android?Как отправить твит с помощью jTwitter на Android?

Я застрял с Authentification. Я могу успешно перенаправить пользователя на твиттер, разрешить мое приложение и перенаправить на мое приложение с new OAuthSignpostClient(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL). Тогда я хранить oauth_token и oauth_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(); 

 Смежные вопросы

  • Нет связанных вопросов^_^