如何在Twitter4j中获得用户地理位置?

时间:2016-09-20 17:31:47

标签: java twitter4j

我想使用Twitter4J在Twitter上获取用户地理位置的信息。

我使用tweet.getUser.getLocation(),但这给了我错误的地理位置。

// create ConfigurationBuilder class variables "cb"

    // Create Twitter Factory
    TwitterFactory twitterFactory = new TwitterFactory(cb.build());
    Twitter twitter = twitterFactory.getInstance();
    try {
        Query query = new Query("범죄");
        QueryResult result;
        int twittNum = 1;
        do {
            result = twitter.search(query);
            List<Status> tweets = result.getTweets();
            for (Status tweet : tweets) {
                System.out.println("===========================================================================================================");
                System.out.println("["+twittNum+"] 번째 트윗");
                System.out.println("유저이름1:"+tweet.getUser().getName());
                System.out.println("트윗장소:"+tweet.getUser().getLocation());
                System.out.println("트윗언어:"+tweet.getUser().getLang());
                System.out.println("트윗시간?:"+tweet.getUser().getCreatedAt());
                System.out.println("===========================================================================================================");
                twittNum++;
            }
        } while ((query = result.nextQuery()) != null);
        System.exit(0);
    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to search tweets: " + te.getMessage());
        System.exit(-1);
    }
}

1 个答案:

答案 0 :(得分:1)

错误的位置是什么意思?

Twitter4j只是Twitter APi的Java实现,来自documentation

  

位置 Nullable 。此帐户的配置文件的用户定义位置。不一定是位置也不是可解析的。搜索服务偶尔会对此字段进行模糊解释。

这意味着tweet.getUser.getLocation()会从用户那里获取位置,而不是地理位置(就像在某些推文上一样)。您无法从用户获取真实位置,位置字段是来自用户的输入(string),因此它可以是任何内容。如果您心中有 桥下或其他不太具体的内容,例如 Korea the world 这并不意味着这是错误的,它只是人们所写的。