2010-08-20 9 views
6

Android: Ich versuche das folgende xAuth-Beispiel für Android-Freigabe.Android Twitter xAuth Beispiel mit 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()); 
    } 
} 

Ich habe Illegal

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

auf der folgenden Zeile

AccessToken accessToken = twitter.getOAuthAccessToken(); 

ich Änderungen wie ein Ding aus folgenden

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

und wieder bekam ich Ausnahme Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

Jedes Arbeitsbeispiel für XAUTH? mit Android App xauth

+0

Sind Sie sicher, dass Ihr consumerKey und consumerSecret korrekt sind? Außerdem glaube ich nicht, dass dies eine Ausnahme darstellen würde, aber haben sie XAuth für Ihre Anwendung bei Twitter aktiviert? – DonSteep

Antwort

5

Ich habe verwendete "folgende


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

Und erfolgreich zu Twitter anmelden. Dies funktioniert:

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

Denken Sie daran, dass Ihre Twitter-Client-Anwendung authorized to use xAuth bevor das funktioniert sein muss.

+1

Ich versuchte oben Code gibt es folgende Ausnahme Nachricht Die Kombination Name/Kennwort Bildschirm scheint ungültig zu sein. –

+0

Das hat für mich funktioniert. Sehr nützlicher Code für jeden, der keine Zeit hat, XAuth/OAuth richtig zu lernen. –

+0

@Faisal Khan Hi Hast du deine Schlüssel für xAuth von Twitte aktivieren. Wahrscheinlich könnte dies der Grund für den Fehler sein. –

2

Version 2.2.2 von Twitter4J als geringfügige Änderung