2010-08-20 6 views
6

Android: J'essaie l'exemple xAuth suivant pour le partage android.Android Exemple Twitter xAuth utilisant twitter4j

xAuth Authentication for Twitter Share in Android?

System.setProperty("twitter4j.oauth.consumerKey", "your token"); 
System.setProperty("twitter4j.oauth.consumerSecret", "your token secret"); 

Twitter twitter = new TwitterFactory().getInstance(login, password); 

AccessToken accessToken = twitter.getOAuthAccessToken(); 
//Then you must save your Token and Token secret from AccesToken 

if (mAccessToken != null) { 
    if (mAccessToken.getToken() != null && mAccessToken.getTokenSecret() != null) { 
     saveAccessToken(mAccessToken.getToken(), mAccessToken.getTokenSecret()); 
    } 
} 

J'ai IllegalStateException

Exception Msg: java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied

à la ligne suivante

AccessToken accessToken = twitter.getOAuthAccessToken(); 

J'ai fait des changements quelque chose comme suit

Twitter twitter = new TwitterFactory().getInstance("login", "pass"); 
      twitter.setOAuthConsumer(getString(R.string.twtAPIKey), getString(R.string.twtSecret)); 
      AccessToken mAccessToken = twitter.getOAuthAccessToken(); 

et encore j'ai eu exception Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

Tout exemple de travail de XAUTH?

+0

Etes-vous sûr que vos clés consumerKey et consumerSecret sont correctes? En outre, je ne pense pas que cela donnerait une telle exception, mais ont-ils activé XAuth pour votre application sur Twitter? – DonSteep

Répondre

5

J'ai utilisé après


ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); 

    configurationBuilder.setOAuthConsumerKey(Consumer__Key); 
    configurationBuilder.setOAuthConsumerSecret(Consumer_Secret); 
    Configuration configuration = configurationBuilder.build(); 

    Twitter twitter = new TwitterFactory(configuration).getInstance("username","password"); 

    AccessToken token = twitter.getOAuthAccessToken(); 
    System.out.println("Access Token " +token); 

    String name = token.getScreenName(); 
    System.out.println("Screen Name" +name); 

    PrintWriter out= response.getWriter(); 
    System.out.println(token); 

et se connecter avec succès à Twitter en utilisant l'application Android en utilisant xauth

+1

J'ai essayé ci-dessus le code il est donné le message suivant d'exception La combinaison de nom d'écran/mot de passe semble être invalide. –

+0

Cela a fonctionné pour moi. Un morceau de code très utile pour quiconque n'a pas le temps d'apprendre correctement XAuth/OAuth. –

+0

@Faisal Khan Salut Avez-vous vos clés activer pour xAuth de Twitte. Probablement cela pourrait être la raison de l'erreur. –

2

version 2.2.2 de twitter4j comme un léger changement. Cela fonctionne:

Configuration configuration = new ConfigurationBuilder() 
.setOAuthConsumerKey("your_customer_key") 
.setOAuthConsumerSecret("your_customer_secret") 
.build(); 

Twitter twitter = new TwitterFactory(configuration).getInstance(new BasicAuthorization(username, password)); // yes, use "BasicAuthorization" although that seems strange 

AccessToken token = twitter.getOAuthAccessToken(); 
Log.d(TAG, "Access token: " + token.getToken()); 
Log.d(TAG, "Access token secret: " + token.getTokenSecret()); 

Rappelez-vous que votre application client twitter doit être authorized to use xAuth avant que cela fonctionne.