【问题标题】:Credentials setup issue when using Twitter4j使用 Twitter4j 时的凭据设置问题
【发布时间】:2018-01-16 05:35:50
【问题描述】:

我使用 Java 上的 Twitter4j 执行以下代码在 Twitter 上发布消息:

public static void main(String[] args) throws TwitterException {
String consumerKey = ".....";
String consumerSecret = "....";
String accessToken = "....";
String accessTokenSecret = "....";

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
        .setOAuthConsumerKey(consumerKey)
        .setOAuthConsumerSecret(consumerSecret)
        .setOAuthAccessToken(accessToken)
        .setOAuthAccessTokenSecret(accessTokenSecret);
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();

//Posting a Tweet
twitter.updateStatus("Hello , This is a sample tweet");

}

但是,我收到以下错误:

Exception in thread "main" 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following). 
message - SSL is required
code - 92

Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=b2b52c28 or
http://www.google.co.jp/search?q=0f7b8a6a
TwitterException{exceptionCode=[b2b52c28-0f7b8a6a], statusCode=403, message=SSL is required, code=92, retryAfter=-1, rateLimitStatus=null, version=3.0.0}

无论我尝试获取时间线、进行查询还是发送帖子,都会遇到同样的错误。

我认为我无法达到任何限制,因为这是我第一次尝试使用 Java。 有人知道原因吗?

【问题讨论】:

    标签: java twitter twitter-oauth twitter4j credentials


    【解决方案1】:

    问题通过添加解决:

    cb.setUseSSL(true);
    

    我不知道背后的确切解释。谁能解释一下?

    【讨论】:

      【解决方案2】:

      您必须使用旧版本的 Twitter4J。

      对于旧版本的 Twitter4j,您必须启用 .setUseSSL(true);

      在以前的版本中(4.x 之前 - 2014 年 3 月),您必须选择是通过 SSL 还是标准请求连接到 Twitter 的 API,但 Twitter 已经关闭了通过非 SSL 连接。

      在 twitter4j 的 4.xx 版本中,setUseSSL(..) 方法已被删除,该库将默认使用 SSL。

      出于用户隐私原因,Twitter 将其 API 更改为 要求 SSL

      通过 TLS 进行通信可保护用户隐私 用户和 Twitter API 之间传输的信息 公共互联网。

      【讨论】:

      • 这是正确答案,并解释了如果您使用的是旧版本的 Twitter4J,您必须将其设置为 true 的原因。如果可以的话,我建议您更新到最新版本。
      猜你喜欢
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2020-01-02
      • 1970-01-01
      • 2011-11-01
      • 2016-01-31
      • 1970-01-01
      相关资源
      最近更新 更多