2012-12-07 26 views
5

Tôi nhận được thông tin từ Twitter Android lý Tài khoản sử dụng đoạn mã sau:Sử dụng thông tin Android lý Tài khoản Twitter để tạo Twitter4J AccessToken

AccountManager am = AccountManager.get(this); 
Account account = am.getAccountsByType("com.twitter.android.auth.login")[0]; 
am.invalidateAuthToken("com.twitter.android.auth.login", null); 
am.getAuthToken(account, "com.twitter.android.oauth.token", null, this, createCallback(TOKEN), null); 
am.getAuthToken(account, "com.twitter.android.oauth.token.secret", null, this, createCallback(TOKEN_SECRET), null); 

Tôi đang sử dụng các giá trị trở về từ các callbacks để thiết lập một đối tượng Twitter4J Twitter:

Twitter twitter = new TwitterFactory().getInstance(); 
twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); 
twitter.setOAuthAccessToken(new AccessToken(token, tokenSecret)); 
User user = twitter.verifyCredentials(); 

Nhưng nó tạo ra ngoại lệ sau khi gọi verifyCredentials():

Exception connecting to twitter 
    Received authentication challenge is null 
    Relevant discussions can be found on the Internet at: 
    http://www.google.co.jp/search?q=6f0f59ca or 
    http://www.google.co.jp/search?q=200bae40 
    TwitterException{exceptionCode=[6f0f59ca-200bae40 1de2170b-e16a1586], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.2} 
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:192) 
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61) 
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89) 
    at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:126) 
    at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:578) 

Tôi đã thử gọi invalidateAuthToken trên Trình quản lý tài khoản trước khi yêu cầu mã thông báo, nhưng điều đó không tạo ra bất kỳ sự khác biệt nào.

Tôi có thể gọi thành công verifyCredentials khi thiết lập mã thông báo và giá trị tokenSecret cho những ứng dụng được cung cấp bởi Twitter cho ứng dụng của tôi, nhưng tôi cần có khả năng sử dụng thông tin đăng nhập twitter của người dùng thiết bị hiện tại.

Có bất kỳ bước nào khác cần thiết để sử dụng giá trị bí mật mã thông báo và mã thông báo được trả về từ Trình quản lý tài khoản để thiết lập AccessToken không?

Điều này đã được thử nghiệm trên HTC Evo, chạy Android 2.3.5.

+0

Một lưu ý: Tôi không nghĩ 'invalidateAuthToken' hoạt động mà không chuyển chuỗi mã thông báo hiện tại. – devnate

+0

Tôi cũng gặp vấn đề tương tự! Không có ý tưởng làm thế nào để giải quyết nó –

Trả lời

0

Kiểm tra xem đồng hồ/giờ trên điện thoại của bạn có chính xác không.

Vấn đề là thời gian máy chủ twitter không khớp với thời gian điện thoại của bạn.

+0

Tôi đã thử rằng, tôi có thể xác nhận rằng đồng hồ được đặt chính xác. Nó cũng hoạt động nếu tôi chuyển các giá trị token và tokenSecret hiện tại, không phải khi sử dụng các giá trị đó từ Trình quản lý tài khoản. –

0

tôi cần để có thể sử dụng cho người sử dụng thiết bị hiện twitter credentials

Xin lỗi, đây là not possible.

Các vấn đề liên quan