【问题标题】:TwitterException with xAuth while posting from Android using Twitter4j使用 Twitter4j 从 Android 发布时带有 xAuth 的 TwitterException
【发布时间】:2011-04-07 04:02:50
【问题描述】:

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

【问题讨论】:

    标签: android twitter twitter4j xauth


    【解决方案1】:

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

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

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

    谢谢 德鲁米尔沙阿

    【讨论】:

      【解决方案2】:

      你看过这些帖子了吗??

      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> 
      

      【讨论】:

      • 嗨 rahul,我想知道如何在 Android 中添加此依赖项,任何想法。
      【解决方案3】:

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

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

      【讨论】:

      • 非常感谢,您的帖子非常详尽和精彩,但我使用的是 xauth,我很高兴知道上述代码失败的原因。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-06
        • 2021-04-11
        • 2019-06-05
        • 2014-10-22
        相关资源
        最近更新 更多