Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Twitter4j从Android发布时,xAuth出现TwitterException_Android_Twitter_Twitter4j_Xauth - Fatal编程技术网

使用Twitter4j从Android发布时,xAuth出现TwitterException

使用Twitter4j从Android发布时,xAuth出现TwitterException,android,twitter,twitter4j,xauth,Android,Twitter,Twitter4j,Xauth,我正在使用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(u

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

你查看了这些帖子吗

对于一个人来说,切换版本解决了这个问题

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

org.twitter4j
twitter4j核
2.1.0

我在TwitterOAuth上发表了一篇使用Twitter4j和其他库的博客文章。你可以这样做:


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

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

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

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

谢谢
Dhrumil Shah

我同意:发邮件到Twitterapi@twitter.com请求应用程序启用xAuth。你似乎还没有这样做,所以当你调用xAuth服务方法时,它只会返回HTTP 401。

你好,rahul,我想知道如何在Android中添加这个依赖项,有什么想法吗。非常感谢amit,你的帖子非常详细和精彩,但我正在使用xAuth,我很高兴知道上面代码失败的原因。