2010-09-02 60 views
1

J'utilise twitter4j-2.1.3.jar pour faire un post simple à twitter. Le code que j'utilise est:TwitterException avec xAuth lors de la publication d'Android en utilisant Twitter4j

System.setProperty("twitter4j.oauth.consumerKey", TWITTER_CONSUMER_KEY); 
System.setProperty("twitter4j.oauth.consumerSecret",TWITTER_SECRET_KEY); 
Twitter twitter = new TwitterFactory().getInstance(username,password); 
AccessToken accessToken = twitter.getOAuthAccessToken(); 
twitter.updateStatus(": xAuth test"); 

Le message d'erreur que je reçois est:

TwitterException{exceptionCode=[e07c50ee-0000d883 1ac06e3f-626a1296], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.3} 

    at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:185) 
    at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthAccessToken(TwitterOAuthSupportBaseImpl.java:108) 
    at twitter4j.Twitter.getOAuthAccessToken(Twitter.java:54) 
    at com.sfway.detailpage.CheckinTab$16$1.run(CheckinTab.java:640) 
    TwitterException{exceptionCode=[1ac06e3f-626a1296], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.3} 
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:307) 
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72) 
    at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103) 
    at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:178) 

J'ai essayé une autre façon comme ceci:

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); 
configurationBuilder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY); 
configurationBuilder.setOAuthConsumerSecret(TWITTER_SECRET_KEY); 
Configuration configuration = configurationBuilder.build(); 
twitter = new TwitterFactory(configuration).getInstance(username,password); 
AccessToken token = twitter.getOAuthAccessToken(); 
twitter.updateStatus(": xAuth test"); 

Dans les deux méthodes que je reçois l'erreur à "Ligne twitter.getOAuthAccessToken()". S'il vous plaît laissez-moi savoir ce qui ne va pas. J'ai enregistré mon application exactement 14 heures avant, pour obtenir le secret et la clé du consommateur. Est-ce quelque chose à voir avec l'approbation de mon application pour l'utilisation de xAuth, si oui comment puis-je savoir si ils ont activé XAuth pour mon application sur Twitter.

Répondre

2

Avez-vous envoyé un e-mail à l'assistance Twitter pour activer xAuth pour votre application? Twitter ne souhaite que l'utilisation de xAuth par les applications de bureau et les applications mobiles. Par conséquent, les applications enregistrées sont désactivées par xAuth, et vous avez besoin de quelqu'un sur Twitter pour l'activer. Si l'application xAuth n'est pas activée dans votre application, vous obtenez un 401.

Pour activer xAuth, envoyez un e-mail à [email protected] avec le nom de votre application et la raison pour laquelle elle a besoin de xAuth au lieu de l'ancienne OAuth. (par exemple, il n'est pas approprié de faire apparaître un navigateur Web dans mon application de bureau).

Merci Dhrumil Shah

0

J'ai blog sur Twitter OAuth en utilisant twitter4j et d'autres bibliothèques. Vous pouvez suivre cela: http://blog.sogeti.com/mobile/2010/03/twitter-oauth-for-android.html

Aussi si vous utilisez Twitter4j2.1.3 être awre qu'il est compatible avec Android 2.0 et au-dessus. Faites-moi savoir si vous avez encore des problèmes car j'ai développé une application Twitter complète en utilisant Twitter4j 2.0.9.

+0

merci beaucoup, votre message a été très élaboré et merveilleux, mais j'utilise xauth, je serai heureux de savoir pourquoi le code ci-dessus a échoué. – ganesh

+0

lien maintenant cassé –

0

Je suis d'accord avec Dhrumil Shah: Twitter email à [email protected] pour demander l'application d'avoir XAUTH activé. Il semble que vous ne l'ayez pas encore fait, alors la méthode de service xAuth ne retournera que le protocole HTTP 401 lorsque vous l'appellerez.