1

我正在使用 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。

4

4 回答 4

2

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

Twitter 只希望桌面和移动应用程序使用 xAuth,因此注册的应用程序默认禁用 xAuth,您需要 Twitter 的人员为您打开它。如果您的应用程序没有启用 xAuth,您会得到 401。

要启用 xAuth,请向 api@twitter.com 发送一封电子邮件,其中包含您的应用程序名称以及它需要 xAuth 而不是普通的旧 OAuth 的原因(例如,在我的桌面应用程序中弹出 Web 浏览器是不合适的)。

谢谢德鲁米尔沙阿

于 2010-09-10T12:28:57.347 回答
0

我使用 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 应用程序。

于 2010-09-02T13:04:17.887 回答
0

我同意Dhrumil Shah的观点:通过 api@twitter.com 向 Twitter 发送电子邮件,要求您的应用程序启用 xAuth。看来您还没有这样做,所以 xAuth 服务方法只会在您调用它时返回 HTTP 401。

于 2010-09-16T08:48:31.920 回答
0

你检查过这些帖子吗?

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

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

<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.1.0</version>
</dependency> 
于 2010-09-02T07:01:52.010 回答