每次我在推文中搜索位置时,它都会返回 null,这是我的代码,有什么想法吗?
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey("8888888888888888888");
cb.setOAuthConsumerSecret("8888888888888888888888888");
cb.setOAuthAccessToken("8888888888888888888888");
cb.setOAuthAccessTokenSecret("8888888888888888888888888888");
Twitter twitter = new TwitterFactory(cb.build()).getInstance();
Query query = new Query("London");
query.setRpp(1000000);
QueryResult result = twitter.search(query);
ArrayList tweets = (ArrayList) result.getTweets();
for (int i = 0; i < tweets.size(); i++) {
Tweet t = (Tweet) tweets.get(i);
String user = t.getFromUser();
GeoLocation l = t.getGeoLocation();
String locNam = t.getLocation();
String msg = t.getText();
Date d = t.getCreatedAt();
println(locNam + "");
我可以让 getGeoLocation()
正常工作,它们很少而且相距很远,但我确实得到了一些,但是使用 getLocation
每个搜索都返回 null。
任何帮助将不胜感激!干杯
最佳答案
@JohnSmith,我成功了。
事实证明,如果用户单击按钮将位置添加到他们的推文中,Status.getLocation()(或 Tweet.getLocation())就会起作用。如果您选择不这样做,那么您的位置将不会被发布,并将返回 null。
我使用我的测试 Twitter 帐户对此进行了测试:@Saviour_Self在我最近的帖子中,我给出了一个位置,当我运行我的应用程序时,它返回了该位置。我运行了一个循环来从我的帐户获取所有状态更新,其中只有一个返回位置。
for (Status s : tweets) {
System.out.println(s.getLocation()); //Returned the location of the tweet.
System.out.println(s.getUser().getLocation()); /* Returned the
User Profile Location (always constant)*/
}
请记住,我使用 JTwitter 来执行此操作,而不是 Twitter4j,但结果应该是相同的。继续在我的帐户上测试您的程序。只有最新的帖子才会返回非空位置。
关于java - getLocation() 总是返回 null,搜索 Twitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440414/