2010-08-20 16 views
6

Android: Android paylaşımı için aşağıdaki xAuth örneğini çalışıyorum.Android Twitter xuuth örnek kullanarak 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()); 
    } 
} 

Bazı şey

aşağıdaki gibi değişiklikler yaptı

AccessToken accessToken = twitter.getOAuthAccessToken(); 

Ben şu satırında IllegalStateException

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

yaşıyorum

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

ve yine istisna Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

Xauth herhangi çalışma örneği var mı?

+0

ConsumKey ve consumerSecret'inizin doğru olduğundan emin misiniz? Ayrıca, bunun böyle bir istisna olacağını düşünmüyorum, ancak uygulamanız için Twitter'da XAuth'u etkinleştirdiler mi? – DonSteep

cevap

5

Ben


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

aşağıdaki Ve başarıyla hafif değişiklik olarak twitter4j ait

+1

Yukarıdaki istisna mesajını veren kodu denedim Ekran adı/şifre kombinasyonu geçersiz görünüyor. –

+0

Bu benim için çalıştı. XAuth/OAuth öğelerini doğru şekilde öğrenmek için zamana sahip olmayan herkes için çok yararlı bir kod. –

+0

@Faisal Khan Merhaba Anahtarlarınızı Twitte'den xAuth için etkinleştirdiniz. Muhtemelen bu, hatanın sebebi olabilir. –

2

Versiyon 2.2.2 xauth kullanarak Android uygulamasını kullanarak Twitter giriş kullanılan ettik. Bu çalışır:

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

senin heyecan istemci uygulaması bu işler önce authorized to use xAuth olması gerektiğini unutmayın.