0

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

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

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

谁能帮我?

4

3 回答 3

1

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

我第一次使用:

twitter = TwitterFactory.getSingleton()

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

不,我正在使用:

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

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

于 2013-04-16T11:26:39.880 回答
1

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

于 2013-07-08T13:11:33.797 回答
0

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

检查此链接创建应用程序的临时问题

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

该库也已更新.. 检查此链接Discussing API v1.1twitter 问题:无法检索访问令牌。状态:401。

祝你的项目好运!

于 2013-04-16T07:16:55.057 回答