2010-08-31 21 views
2

我正在創建一個使用Twitter4J閱讀某些用戶信息的Android應用程序。Twitter4J exceptionCredentials上的例外

這是所有工作正常,但這個晚上,當我啓動應用程序和用戶登錄到Twitter我得到一個異常:

Twitter twitter = new TwitterFactory().getInstance(twitterID,twitterPassword); 
    u = twitter.verifyCredentials(); 

這引發以下異常上的verifyCredentials()調用:

08-31 20:36:59.084: WARN/System.err(454): twitter4j.TwitterException: https://api.twitter.com/1/account/verify_credentials.json 
08-31 20:36:59.094: WARN/System.err(454):  at twitter4j.http.HttpClient.request(HttpClient.java:333) 
08-31 20:36:59.094: WARN/System.err(454):  at twitter4j.http.HttpClientWrapper.request(HttpClientWrapper.java:66) 
08-31 20:36:59.094: WARN/System.err(454):  at twitter4j.http.HttpClientWrapper.get(HttpClientWrapper.java:88) 
08-31 20:36:59.094: WARN/System.err(454):  at twitter4j.Twitter.verifyCredentials(Twitter.java:1025) 
08-31 20:36:59.104: WARN/System.err(454):  at com.tmm.android.soundbiter.TwitterInterface.<init>(TwitterInterface.java:65) 
08-31 20:36:59.104: WARN/System.err(454):  at com.tmm.android.soundbiter.LogOnActivity.initTwitterUser(LogOnActivity.java:138) 
08-31 20:36:59.104: WARN/System.err(454):  at com.tmm.android.soundbiter.LogOnActivity.startApplicationActivity(LogOnActivity.java:102) 
08-31 20:36:59.104: WARN/System.err(454):  at com.tmm.android.soundbiter.LogOnActivity.onCreate(LogOnActivity.java:47) 
08-31 20:36:59.104: WARN/System.err(454):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-31 20:36:59.104: WARN/System.err(454):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
08-31 20:36:59.104: WARN/System.err(454):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
08-31 20:36:59.104: WARN/System.err(454):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
08-31 20:36:59.115: WARN/System.err(454):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
08-31 20:36:59.115: WARN/System.err(454):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-31 20:36:59.115: WARN/System.err(454):  at android.os.Looper.loop(Looper.java:123) 
08-31 20:36:59.115: WARN/System.err(454):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
08-31 20:36:59.124: WARN/System.err(454):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-31 20:36:59.124: WARN/System.err(454):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-31 20:36:59.124: WARN/System.err(454):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
08-31 20:36:59.124: WARN/System.err(454):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
08-31 20:36:59.134: WARN/System.err(454):  at dalvik.system.NativeStart.main(Native Method) 
08-31 20:36:59.134: WARN/System.err(454): Caused by: java.io.FileNotFoundException: https://api.twitter.com/1/account/verify_credentials.json 
08-31 20:36:59.134: WARN/System.err(454):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1061) 
08-31 20:36:59.134: WARN/System.err(454):  at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnection.getInputStream(HttpsURLConnection.java:252) 
08-31 20:36:59.134: WARN/System.err(454):  at twitter4j.http.HttpResponse.<init>(HttpResponse.java:83) 
08-31 20:36:59.134: WARN/System.err(454):  at twitter4j.http.HttpClient.request(HttpClient.java:288) 
08-31 20:36:59.134: WARN/System.err(454):  ... 20 more 

正如我所說,這並沒有改變周,但剛剛突然停止工作。我也注意到,如果我實例化我的Twitter對象annonymously(不通過用戶名和密碼),那麼它仍然可以讓我從twi檢索信息/用戶/狀態(顯然verifyCredentials()不起作用,雖然它是一個匿名用戶)

有沒有人遇到過這個問題或類似?

在此先感謝!

+0

您可以檢查此OAuth TUT:http://www.anddev.org/advanced-tutorials-f21/sending-a-tweet-t54389.html顯示如何使用源文件的Twitter4J – Blundell 2011-08-11 12:11:51

+0

謝謝,我實際上設法得到它的前一段時間的工作,並寫了我在這裏做了什麼:http://automateddeveloper.blogspot.com/2011/06/android-twitter-oauth-authentication.html – rhinds 2011-08-11 15:08:11

回答

2

Twitter API不再支持基本身份驗證,您必須將您的應用程序更改爲使用內置於Twitter4J中的OAuth,http://dev.twitter.com/pages/auth_overview

+0

謝謝!我會調查這個選項..這是Twitter剛剛推出的東西嗎?這只是在昨天工作.. – rhinds 2010-08-31 21:09:49

+0

他們宣佈他們會這樣做一段時間後,實際上將在七月做一些,但推遲了世界盃。這很容易忽略。 – Frank 2010-08-31 21:24:32

+0

再次感謝 - 我一直在尋找OAuth設置;對於我的android應用程序,我希望用戶能夠使用他們的憑據登錄到Twitter,然後能夠發佈更新等 - 你知道這是可能的嗎?我正在通過步驟來啓動和運行,我只需輸入PIN碼即可讓應用程序訪問我的Twitter帳戶,所有用戶都必須執行此操作嗎?所有的Twitter客戶都必須經歷這個過程嗎? – rhinds 2010-08-31 22:10:43