取消登录后,Twitter4j抛出'未发现身份验证质询'

时间:2013-04-15 11:50:00

标签: android twitter4j

我正在使用Twitter4J发布一些推文。 当我尝试发布推文时,我打开一个带有authenticationURL的webview来登录:

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

如果我重复使用以前的身份验证网址,则webview会显示一条错误消息,指出此网址太旧。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

最后,我找到了一个解决方案:

我第一次使用:

twitter = TwitterFactory.getSingleton()

获取Twitter对象。通过这种方式,第二次调用getOAuthRequestToken()时,我得到了上述错误。

不,我正在使用:

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

所以每次开始相关活动时都会有不同的实例。通过这种方式,我永远不会在同一个实例上第二次调用getOAuthRequestToken(),所以我没有错误。

答案 1 :(得分:1)

这可能听起来很奇怪但是会尝试自动设置您的时间/日期更新。根据我以前的经验,这就是问题所在。当我设置此项并且在同步手机时间后,一切正常。

答案 2 :(得分:0)

更改回调URL不是原因,重置密钥需要一些时间。检查你的密钥是否正确,时间是否同步..几天前出现了一个问题,现在已经修复了。确保要求URL的任何字段(“网站”和“回调URL”)都是完全合格的nontwitter.com域。 可能是您的应用程序名称已被其他应用程序使用。尝试使用不同的名称并尝试再次保存。

点击此链接Temporary issue with creating applications

检查您的模拟器,可能是您的设备时间不同步。如果您的时间不同步,它将无法工作。

图书馆也已更新..请点击此链接Discussing API v1.1,此处Issue with twitter: Unable to retrieve the access token. Status: 401.

祝你的项目好运!