2012-09-03 65 views
3

我正在嘗試將Twitter整合到我的Android應用程序中,並且似乎無法讓Twitter4j註冊我的應用程序。Twitter4j帶有回調URL的getOAuthRequestToken()在Android上失敗?

關於我在Android上看到的問題,每一個教程和問題都已經過去了幾年,事情似乎從那時起就一直在發展。

我按照this tutorial上的步驟操作,並使用提供的源代碼來測試連接到Twitter。知道隨源代碼提供的Twitter4j版本已過時,我稍後將其更新爲最新版本和快照版本,但都無濟於事。

private void loginNewUser() { 
    try { 
     Log.i(TAG, "Request App Authentication"); 

     // This line fails with error "Host is unresolved: api.twitter.com:80 
     mReqToken = mTwitter.getOAuthRequestToken(); 

     Log.i(TAG, "Starting Webview to login to twitter"); 
     WebView twitterSite = new WebView(this); 
     twitterSite.loadUrl(mReqToken.getAuthenticationURL()); 
     setContentView(twitterSite); 

    } catch (TwitterException e) { 
     Log.e("errors", e.getMessage()); 
     Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); 
    } 
} 

任何人都有使用Twitter4j的任何工作登錄代碼或知道問題的解決方案我很感謝您的來信!

回答

8

好吧我想通了,我希望任何遇到同樣問題的人不必像我一樣受苦。

1)錯誤「主機未解決:api.twitter.com:80」來自設備沒有WiFi信號或3G連接的事實(WiFi在我工作的辦公室中有點脆弱)。

2)getOAuthRequestToken()在任何大於3.0 Honeycomb的Android版本中崩潰,因爲HTTP請求需要在UI線程的單獨線程上完成。我有這個問題,因爲我已經將Android清單中的目標版本設置爲4.0冰淇淋三明治。

+1

非常感謝您的點2.你給了我希望多小時後... – pAkY88

+3

關於點#2,這太糟糕了,有沒有在任何地方示例代碼,使用類似的AsyncTask;我發現的所有樣品都已過時!即使是Twitter4J 3.0.3附帶的示例代碼! –

0

我也有這個問題,我無法登錄到Twitter的原因是我修改了我的設備進行測試的時間和日期。

一旦我把正確的日期和時間,登錄到Twitter的工作。

希望它可以幫助任何人。