使用 Twitter4j 从 Android 发帖时出现 TwitterException 和 xAuth

发布于 2024-09-17 08:19:34 字数 2003 浏览 8 评论 0原文

我正在使用 twitter4j-2.1.3.jar 在 Twitter 上发布一个简单的帖子。我使用的代码是:

System.setProperty("twitter4j.oauth.consumerKey", TWITTER_CONSUMER_KEY);
System.setProperty("twitter4j.oauth.consumerSecret",TWITTER_SECRET_KEY); 
Twitter twitter = new TwitterFactory().getInstance(username,password);
AccessToken accessToken = twitter.getOAuthAccessToken();
twitter.updateStatus(": xAuth test");

我得到的错误消息是:

 TwitterException{exceptionCode=[e07c50ee-0000d883 1ac06e3f-626a1296], statusCode=401,   retryAfter=0, rateLimitStatus=null, version=2.1.3}

   at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:185)
   at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthAccessToken(TwitterOAuthSupportBaseImpl.java:108)
   at twitter4j.Twitter.getOAuthAccessToken(Twitter.java:54)
   at com.sfway.detailpage.CheckinTab$16$1.run(CheckinTab.java:640)
   TwitterException{exceptionCode=[1ac06e3f-626a1296], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.3}
   at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:307)
   at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72)
   at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103)
   at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:178)

我尝试了另一种方法,如下所示:

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY); 
configurationBuilder.setOAuthConsumerSecret(TWITTER_SECRET_KEY);
Configuration configuration = configurationBuilder.build();
twitter = new TwitterFactory(configuration).getInstance(username,password);
AccessToken token = twitter.getOAuthAccessToken();
twitter.updateStatus(": xAuth test");

在这两种方法中,我在“twitter.getOAuthAccessToken()”行中收到错误。请让我知道出了什么问题。我在 14 小时前注册了我的应用程序,以获取秘密和消费者密钥。这是否与批准我的应用程序使用 xAuth 有关?如果是,我如何知道他们是否已在 Twitter 上为我的应用程序启用了 XAuth。

I am using twitter4j-2.1.3.jar to make a simple post to twitter. The code I use is:

System.setProperty("twitter4j.oauth.consumerKey", TWITTER_CONSUMER_KEY);
System.setProperty("twitter4j.oauth.consumerSecret",TWITTER_SECRET_KEY); 
Twitter twitter = new TwitterFactory().getInstance(username,password);
AccessToken accessToken = twitter.getOAuthAccessToken();
twitter.updateStatus(": xAuth test");

The error message I get is:

 TwitterException{exceptionCode=[e07c50ee-0000d883 1ac06e3f-626a1296], statusCode=401,   retryAfter=0, rateLimitStatus=null, version=2.1.3}

   at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:185)
   at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthAccessToken(TwitterOAuthSupportBaseImpl.java:108)
   at twitter4j.Twitter.getOAuthAccessToken(Twitter.java:54)
   at com.sfway.detailpage.CheckinTab$16$1.run(CheckinTab.java:640)
   TwitterException{exceptionCode=[1ac06e3f-626a1296], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.3}
   at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:307)
   at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72)
   at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103)
   at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:178)

I tried an other way like this:

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY); 
configurationBuilder.setOAuthConsumerSecret(TWITTER_SECRET_KEY);
Configuration configuration = configurationBuilder.build();
twitter = new TwitterFactory(configuration).getInstance(username,password);
AccessToken token = twitter.getOAuthAccessToken();
twitter.updateStatus(": xAuth test");

In both methods I get the error at "twitter.getOAuthAccessToken()" line. Please let me know what is the wrong. I have registered my app exactly 14 hrs before, to get the secret and consumer key. Is this something to do with approval of my app for xAuth use, if yes how can I know whether they have enabled XAuth for my application at Twitter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

咋地 2024-09-24 08:19:34

您是否已向 Twitter 支持人员发送电子邮件,让他们为您的应用程序启用 xAuth?

Twitter 只希望桌面和移动应用程序使用 xAuth,因此注册的应用程序默认禁用 xAuth,并且您需要 Twitter 的某人为您打开它。如果您的应用程序未启用 xAuth,则会收到 401。

要启用 xAuth,请发送电子邮件至 [电子邮件受保护] 以及您的应用程序的名称以及它需要 xAuth 而不是普通旧 OAuth 的原因(例如,在我的桌面应用程序中弹出 Web 浏览器是不合适的)。

谢谢
德鲁米尔·沙阿

Have you emailed Twitter support to get them to turn on xAuth for your application?

Twitter only want xAuth to be used by desktop and mobile applications, so registered applications have xAuth disabled by default, and you need someone at Twitter to turn it on for you. If you application doesn't have xAuth enabled, you get a 401.

To get xAuth enabled, send an email to [email protected] with the name of your application and the reason it needs xAuth instead of plain old OAuth (eg. it's not appropriate to pop up a web browser in my desktop application).

Thanks
Dhrumil Shah

落花浅忆 2024-09-24 08:19:34

你检查过这些帖子吗??

http://groups.google.com/group/twitter4j/ browser_thread/thread/d6dca9622f7cc42a?fwc=1

切换版本已经解决了这个问题

<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.1.0</version>
</dependency> 

Did you check these posts??

http://groups.google.com/group/twitter4j/browse_thread/thread/d6dca9622f7cc42a?fwc=1

Switching the version has solved this issue for a person

<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.1.0</version>
</dependency> 
流星番茄 2024-09-24 08:19:34

我有关于使用 Twitter4j 和其他库的 Twitter OAuth 的博客文章。你可以遵循:
http://blog.sogeti.com/mobile/ 2010/03/twitter-oauth-for-android.html

另外,如果您使用 Twitter4j2.1.3,请注意它与 Android 2.0 及更高版本兼容。如果您仍然遇到问题,请告诉我,因为我已经使用 Twitter4j 2.0.9 开发了一个完整的 Twitter 应用程序。

I have blog post on Twitter OAuth using Twitter4j and other libraries. You can follow that :
http://blog.sogeti.com/mobile/2010/03/twitter-oauth-for-android.html

Also if you are using Twitter4j2.1.3 be awre that it is compatible with Android 2.0 and above. Let me know if you still face issues as I have a developed a complete Twitter app using Twitter4j 2.0.9.

離人涙 2024-09-24 08:19:34

我同意 Dhrumil Shah:通过 [email protected] 向 Twitter 发送电子邮件,要求您的应用程序启用 xAuth 。看来您还没有这样做,所以当您调用 xAuth 服务方法时,它只会返回 HTTP 401。

I agree with Dhrumil Shah: email Twitter at [email protected] to ask for your application to have xAuth enabled. It seems you have not yet done this, so then the xAuth service method will only return HTTP 401 when you call it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文