Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Twitter4j:Oauth不起作用_Java_Twitter_Oauth_Twitter4j - Fatal编程技术网

Java Twitter4j:Oauth不起作用

Java Twitter4j:Oauth不起作用,java,twitter,oauth,twitter4j,Java,Twitter,Oauth,Twitter4j,正在努力获得一个正常工作的twitter4j实例,但是Oauth有问题。我复制粘贴多次,创建了不同的应用程序和密钥/令牌,但仍然无法使其正常工作。我到底做错了什么 我的主要意见是: public class Main { public static void main(String[] args) { // write your code here Tweeter tweet = new Tweeter(); try{ tweet.searchTweets()

正在努力获得一个正常工作的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();
        }
}
}
我的twitter课程:

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());
    }
}

}

打印twitter工厂的密钥/令牌会像预期的那样提供正常的密钥/令牌,没有奇怪的字符或空格或任何东西。任何帮助都将非常感谢

您的代码似乎是从已知的工作代码中剪切和粘贴的。再次检查是否没有多余的字符,例如字符串末尾的空格。

问题在于
tf.getSingleton()
显然不返回
twitter
实例

它应该是Twitter=tf.getInstance()然后它就开始工作了。

哈哈,是的,是推特4j文档中的“剪切和粘贴”。如果您真的阅读了我的问题描述,您会发现我已经检查了凭据字符串中的额外字符。谢谢你的启示
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)