2010-08-20 34 views
6

Android: Tôi đang thử ví dụ xAuth sau đây cho chia sẻ trên Android.Ví dụ về Android Twitter xAuth sử dụng 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()); 
    } 
} 

Tôi gặp IllegalStateException

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

tại dòng sau

AccessToken accessToken = twitter.getOAuthAccessToken(); 

tôi thực hiện thay đổi một số điều như sau

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

và một lần nữa tôi có ngoại lệ Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

Bất kỳ ví dụ làm việc của Xauth?

+0

Bạn có chắc chắn consumerKey và consumerSecret của mình là chính xác không? Ngoài ra, tôi không nghĩ rằng điều này sẽ cung cấp cho một ngoại lệ như vậy, nhưng họ đã kích hoạt XAuth cho ứng dụng của bạn tại Twitter? – DonSteep

Trả lời

5

Tôi đã sử dụng sau


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

Và đăng nhập thành công lên Twitter sử dụng ứng dụng Android sử dụng xauth

+1

Tôi đã thử trên mã nó đang đưa ra thông báo ngoại lệ sau Kết hợp tên/mật khẩu màn hình có vẻ không hợp lệ. –

+0

Điều này làm việc cho tôi. Mã bit rất hữu ích cho bất kỳ ai không có thời gian để tìm hiểu XAuth/OAuth đúng cách. –

+0

@Faisal Khan Xin chào Các bạn đã bật khóa cho xAuth từ Twitte. Có lẽ đây có thể là lý do cho lỗi. –

2

Version 2.2.2 của twitter4j như một sự thay đổi nhẹ. Công trình này:

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

Hãy nhớ rằng ứng dụng khách twitter của bạn cần phải là authorized to use xAuth trước khi hoạt động.