我使用以下代码在Twitter上使用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做的第一次尝试。 有人对这个原因有所了解吗?
答案 0 :(得分:1)
通过添加以下内容解决了这个问题:
cb.setUseSSL(true);
我完全不知道背后的解释。有人可以解释一下吗?
答案 1 :(得分:1)
您必须使用旧版本的Twitter4J。
对于早期版本的Twitter4j,您必须启用.setUseSSL(true);
在以前的版本中(在2014年3月4日之前),您必须选择是否要通过SSL或标准请求连接到Twitter的API,但是Twitter已经关闭了通过非SSL连接。
在twitter4j的4.xx版中,setUseSSL(..)方法已被删除,默认情况下库将使用SSL。
Twitter出于用户隐私原因将其API更改为要求 SSL
通过TLS进行通信可通过保护来保护用户隐私 用户和Twitter API之间传递的信息 公共互联网。