我正在使用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。
答案 0 :(得分:2)
您是否通过电子邮件发送了Twitter支持,以便让他们为您的应用启用xAuth?
Twitter只希望桌面和移动应用程序使用xAuth,因此注册的应用程序默认禁用xAuth,并且您需要Twitter上的某个人为您启用它。如果您的应用程序未启用xAuth,则会获得401。
要启用xAuth,请发送电子邮件至api@twitter.com,其中包含您的应用程序名称及其需要xAuth而非普通旧OAuth的原因(例如,它不适合在我的桌面应用程序中弹出Web浏览器)。
由于 Dhrumil Shah
答案 1 :(得分: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>
答案 2 :(得分: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应用程序。
答案 3 :(得分:0)
我同意Dhrumil Shah:在api@twitter.com上发送电子邮件,要求您的应用程序启用xAuth。看来你还没有这样做,所以xAuth服务方法只会在你调用时返回HTTP 401。