所需行为:从TXT文件中列出的用户ID获取用户推文
事先完成的工作/研究: 注意:我尝试查找此错误消息,以及在发布此消息之前与我的代码中使用的类相关联的任何消息。
注意:此外,我通过访问Twitter并查找用户名手动检查用户,然后他们就会出现。例如,这是其中一个用户,他们确实出现了:the js file not found 我已经与列表中的许多用户完成了这项工作。
注意:仅在手动输入用户时(使用此https://twitter.com/rendrarh),但在从文件中提取时不起作用
我使用Twitter4j获取用户推文并收到以下错误:
TwitterException{exceptionCode=[7defbde2-0dc3a547], statusCode=404, message=Sorry, that page does not exist., code=34, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=899, limit=900, resetTimeInSeconds=1510626518, secondsUntilReset=899}, version=4.0.4}
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.getUserTimeline(TwitterImpl.java:131)
at twitter4j.TwitterImpl.getUserTimeline(TwitterImpl.java:152)
at UserTweets.main(UserTweets.java:42)
第42行是:statuses.addAll(twitter.getUserTimeline(user));
这是我的代码:
import java.io.File;
import java.util.*;
import twitter4j.*;
import twitter4j.conf.*;
public class UserTweets {
public static void main(String[] a) {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("key")
.setOAuthConsumerSecret("key")
.setOAuthAccessToken("key")
.setOAuthAccessTokenSecret("key");
Twitter twitter = new TwitterFactory(cb.build()).getInstance();
String user;
List statuses = new ArrayList();
int userCount = 1;
String fileName = "C:-----/spam-twitter-accounts.txt";
File file = new File(fileName);
Scanner input = new Scanner(file);
List<String> list = new ArrayList<String>();
while (userCount < 20 && input.hasNextLine()) {
try {
user = list.add(input.nextLine());
statuses.addAll(twitter.getUserTimeline(user));
System.out.println(statuses.toString());
if (statuses.size() == 20)
break;
}
catch(TwitterException e) {
e.printStackTrace();
}
}
}
}
答案 0 :(得分:0)
由于txt文件有数字,需要将其更改为Long:
while (userCount < 20 && input.hasNextLong()) {
try {
user = input.nextLong();