我的代码是:
List<Status> list = new ArrayList<Status>();
User user;
Twitter twitter = new Twitter();
list = twitter.search(string);
for(int i=0; i<list.size();i++){
user=list.get(i).getUser();
System.out.print(i+1);
System.out.println(list.get(i));
System.out.println(list.get(i).getId());
System.out.println(list.get(i).getUser());
System.out.println(user.getId());
System.out.println(user.getCreatedAt());
System.out.println(user.getLocation());
System.out.println(user.getFavoritesCount());
}
问题在于良好打印状态,状态和用户ID,但用户功能如何将用户ID,位置等打印为null。我可以采取什么功能????
感谢您的回复
答案 0 :(得分:0)
根据JTwitter API Docs,调用默认构造函数会创建一个没有用户的新实例。您需要使用Twitter.IHttpClient
(取决于Signpost)通过Twitter进行身份验证才能获取用户数据。
答案 1 :(得分:0)
Twitter搜索方法很不寻常,因为它只返回用户信息的一小部分。这是Twitter和Twitter的限制。你无能为力。
位置等字段将为空白。
您始终可以获取屏幕名称,这可用于通过show()方法获取额外信息。 E.g。
Twitter twitter;
List<String> userNames; // make this list from user.screenName
List<User> fullUserInfo = twitter.users().show(userNames)
如果您有最新的JTwitter副本(http://www.winterwell.com/software/jtwitter.php),那么它就在javadoc中。
注意:如果Twitter负载很重,其他方法有时会在User中返回缺少的字段。