2013-04-15 29 views
0

我使用Twitter4J發佈了一些推文。 當我嘗試發佈鳴叫我打開一個網頁視圖與authenticationURL登錄:Twitter4j在取消登錄後拋出'未發現驗證問題'

twitterRequestToken = twitter.getOAuthRequestToken(Constants.TWITTER_CALLBACK); 

Intent i = new Intent(FutbolTvActivity.this, TwitterWebLoginActivity.class); 
i.putExtra("URL", twitterRequestToken.getAuthenticationURL()); 
startActivityForResult(i, 1); 

如果我完成的過程中,我得到記錄確定,可以發送鳴叫。 的問題是,如果我點擊取消登錄網頁上的按鈕,我嘗試重新登錄我收到

twitter.getOAuthRequestToken(Constants.TWITTER_CALLBACK): No authentication challenges found 

下一個異常如果我重新使用以前的認證網址的網頁視圖顯示錯誤消息,說這句話的網址太舊了。

任何人都可以幫助我嗎?

+0

這是因爲您在創建OAuth密鑰時可能沒有添加**回調URL **。 – Numair

+0

您是否意指在dev.twitter.com上創建應用程序? – sgallego

+0

在創建OAth密鑰後的一段時間我們更改了回撥URL。這可能是原因? – sgallego

回答

1

最後,我找到了一個解決方案:

在我第一次使用:

twitter = TwitterFactory.getSingleton() 

用於獲取Twitter的對象。通過這種方式我第二次調用getOAuthRequestToken()我得到了上述錯誤。

不,我使用的是:

twitter = new TwitterFactory(configuration.build()).getInstance(); 

所以我有不同的情況下,每次我啓動相關的活動時間。通過這種方式,我再也不用在同一個實例上調用getOAuthRequestToken(),所以我沒有任何錯誤。

0

更改回撥URL不是原因,需要一些時間來重置密鑰。檢查您的密鑰是否正確,時間是否同步。幾天前出現的問題現在已經解決。確保任何詢問網址的字段(「網站」和「回調網址」)都是完全符合條件的非--twitter.com網域。 可能您的應用程序名稱已被其他應用程序使用。嘗試不同的名稱並嘗試再次保存。

檢查此鏈接Temporary issue with creating applications

檢查你的仿真器,可能是您的設備的時間不同步。如果你的時間不同步,它將無法正常工作。

庫也被更新。檢查此鏈接Discussing API v1.1這也太Issue with twitter: Unable to retrieve the access token. Status: 401.

祝你的項目!

+0

我認爲所有配置參數和時間都可以,因爲我可以記錄日誌併發布推文而不會出現任何問題。如果我點擊getAuthenticationURL()網頁上的取消按鈕並嘗試第二次嘗試getOAuthRequestToken(),我只會得到錯誤... – sgallego

+0

嘗試刷新您的密鑰..以及我提到的問題.. – Numair

1

這可能聽起來很奇怪,但嘗試自動設置您的時間/日期更新。根據我以前的經驗,這是問題所在。當我設置這個和電話時間同步後,一切工作正常。