我尝试使用Twitter4J库中的 getUserTimeline()下载公开推文,它仅适用于某些帐户。例如:
twitter.getUserTimeline("twitter"); //works
twitter.getUserTimeline("codeacademy"); //fails
然而,我发现两者之间没有任何区别。我跟着他们都没有,我也不遵循任何一个。如果我在Firefox的私人模式下访问他们的帐户,我可以看到他们的公开推文。当我使用我的帐户登录时也是如此。但是,如果我尝试使用API,codeacademy会以某种方式失败。我尝试使用参数“codeacademy”,“Codeacademy”,甚至ID(716547158)来调用它,总是得到相同的结果。
我得到的错误信息是:
Exception in thread "main" 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
{"request":"\/1.1\/statuses\/user_timeline.json?screen_name=codeacademy&include_my_retweet=true&include_entities=1&include_rts=1","error":"Not authorized."}
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=00df323f or
http://www.google.co.jp/search?q=445fb8e5
TwitterException{exceptionCode=[00df323f-445fb8e5], statusCode=401, message=null, code=-1, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=177, limit=180, resetTimeInSeconds=1384522960, secondsUntilReset=495}, version=3.0.4}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:162)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:81)
...etc...
我认为我可能正在初始化Twitter对象错误,但尝试3种不同的选项并没有帮助。这是我尝试过的。
( * 是那里的实际值:))
oauth.consumerKey=***
oauth.consumerSecret=***
oauth.accessToken=***
oauth.accessTokenSecret=***
在java中
Twitter twitter = TwitterFactory.getSingleton();
在twitter4j.properties
中enableApplicationOnlyAuth=true
http.useSSL=true
oauth.consumerKey=***
oauth.consumerSecret=***
oauth2.tokenType=bearer
oauth2.accessToken=***
我通过调用并手动复制粘贴来获取oauth2值:
OAuth2Token token = twitter.getOAuth2Token();
System.out.println(token.getAccessToken());
System.out.println(token.getTokenType());
在java中
Twitter twitter = new TwitterFactory().getSingleton();
在twitter4j.properties
中*nothing*
在java中
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setUseSSL(true);
builder.setApplicationOnlyAuthEnabled(true);
Twitter twitter = new TwitterFactory(builder.build()).getInstance();
twitter.setOAuthConsumer("***", "***");
OAuth2Token token = twitter.getOAuth2Token();
每次尝试都与twitter有关,没有人使用codeacademy。
我一定是做错了什么但是找不到什么。任何建议都将受到高度赞赏:)。感谢。
答案 0 :(得分:2)
当你到这里时:https://twitter.com/codeacademy
它写在页面本身,该用户的推文受到保护,只有关注者才能访问此帐户的推文。
因此,你可以得到推文: