2010-08-20 14 views
6

Android: sto provando il seguente esempio xAuth per la condivisione Android.Android Twitter xAuth esempio con 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()); 
    } 
} 

Sto avendo IllegalStateException

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

alla seguente riga

AccessToken accessToken = twitter.getOAuthAccessToken(); 

ho fatto cambiamenti qualche cosa come segue

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

e ancora una volta ho avuto eccezione Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

Qualsiasi esempio funzionante di xauth?

+0

Sei sicuro che il tuo consumerKey e consumerSecret siano corretti? Inoltre, non penso che questo darebbe un'eccezione, ma hanno abilitato XAuth per la tua applicazione su Twitter? – DonSteep

risposta

5

'ho usato dopo


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

ed effettuare il login con successo per Twitter utilizzando app Android utilizzando xauth

+1

Ho provato sopra il codice che sta dando il seguente messaggio di eccezione La combinazione nome/password schermo sembra non essere valida. –

+0

Questo ha funzionato per me. Bit di codice molto utile per chiunque non abbia tempo per imparare correttamente XAuth/OAuth. –

+0

@Faisal Khan Ciao Hai le chiavi abilitate per xAuth da Twitte. Probabilmente questo potrebbe essere il motivo dell'errore. –

2

versione 2.2.2 di twitter4j come un leggero cambiamento. Questo funziona:

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

Ricordate che l'applicazione client Twitter ha bisogno di essere authorized to use xAuth prima che questo funziona.

Problemi correlati