java - Twitter4j:Oauth 不起作用
问题描述
努力获得一个工作的 twitter4j 实例,但在 Oauth 上遇到问题。我多次复制粘贴,创建了不同的应用程序和密钥/令牌,但仍然无法正常工作。我真的能在这里做错什么吗?
我的主要:
public class Main {
public static void main(String[] args) {
// write your code here
Tweeter tweet = new Tweeter();
try{
tweet.searchTweets();
} catch (TwitterException e) {
e.printStackTrace();
}
}
}
我的推特课:
public class Tweeter {
public static Twitter GetTwitterInstance(){
String consumerKey = "**************";
String consumerSecret = "*************";
String accessToken = "***************"; // yourt token
String accessTokenSecret = "************"; // your token secre
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(consumerKey)
.setOAuthConsumerSecret(consumerSecret)
.setOAuthAccessToken(accessToken)
.setOAuthAccessTokenSecret(accessTokenSecret);
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getSingleton();
return twitter;
}
public static void searchTweets() throws TwitterException{
Twitter twitter = GetTwitterInstance();
Query query = new Query("something");
QueryResult result = twitter.search(query);
List<Status> statuses = result.getTweets();
for(Status tweet: statuses){
System.out.println("User: "+tweet.getUser().getScreenName() + " Tweet: "+tweet.getText());
}
}
}
和错误堆栈跟踪:
400:The request was invalid. An accompanying error message will explain why.
This is the status code will be returned during version 1.0 rate
limiting(https://dev.twitter.com/pages/rate-limiting). In API v1.1, a request
without authentication is considered invalid and you will get this response.
message - Bad Authentication data.
code - 215
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=506c3b98 or
http://www.google.co.jp/search?q=11ed9ae8
TwitterException{exceptionCode=[506c3b98-11ed9ae8], statusCode=400,
message=Bad Authentication data., code=215, retryAfter=-1,
rateLimitStatus=null, version=4.0.6}
at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:164)
at twitter4j.HttpClientBase.request(HttpClientBase.java:57)
at twitter4j.HttpClientBase.get(HttpClientBase.java:75)
at twitter4j.TwitterImpl.get(TwitterImpl.java:1786)
at twitter4j.TwitterImpl.search(TwitterImpl.java:268)
at Tweeter.searchTweets(Tweeter.java:58)
at Main.main(Main.java:14)
打印 twitter 工厂的密钥/令牌会按预期提供正常的密钥/令牌,没有奇怪的字符或空格或其他任何东西。任何帮助将不胜感激!
解决方案
问题是显然tf.getSingleton()
不返回twitter
实例。
它应该是公正Twitter twitter = tf.getInstance();
的,然后它就起作用了。
推荐阅读
- dynamics-crm - Dynamics 365 插件原像包含修改后的值
- hadoop - 无法启动 Hadoop Namenode - 语法错误
- javascript - 在 Vanilla JS 中使用 FadeIN/Out 显示多个图像的数组中的随机图像?
- python - Python GUI 一遍又一遍地混淆同一个短语
- c# - 广播 SendMessage 与调用超类委托
- c# - SerialPort DataReceived 事件线程
- python - 提高约束添加性能 Gurobi python
- mongodb - Is it possible to configure the logs with WARN, ERROR, INFO logging keys to ease the burden to monitor the system?
- reactjs - React pass state to nested components not working
- java - JNA maps Java boolean to -1 integer?