Java 使用Twitter4j时出现凭据设置问题
我使用Java上的Twitter4j在Twitter上发布了一条消息,代码如下:Java 使用Twitter4j时出现凭据设置问题,java,twitter,twitter-oauth,twitter4j,credentials,Java,Twitter,Twitter Oauth,Twitter4j,Credentials,我使用Java上的Twitter4j在Twitter上发布了一条消息,代码如下: public static void main(String[] args) throws TwitterException { String consumerKey = "....."; String consumerSecret = "...."; String accessToken = "...."; String accessTokenSecret = "...."; ConfigurationBuil
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上做的第一次尝试。
有人知道原因吗?问题可以通过添加以下内容来解决:
cb.setUseSSL(true);
我不知道背后的确切解释。有人能解释一下吗?您一定使用了较旧版本的Twitter4J 对于Twitter4j的旧版本,您必须启用
.setusesl(true)代码>
在以前的版本中(2014年3月4日之前),您必须选择是通过SSL还是标准请求连接到Twitter的API,但Twitter已经关闭了通过非SSL连接的功能
在twitter4j的4.xx版本中,setUseSSL(..)方法已被删除,并且库在默认情况下将使用SSL
出于用户隐私原因,Twitter将其API更改为要求SSL
通过TLS进行通信通过保护
用户与Twitter API之间的信息
公共互联网
这是正确的答案,并解释了为什么如果您使用的是较旧版本的Twitter4J,那么必须将其设置为true。如果可以的话,我建议您更新到最新版本。