Как выполнить «ближний» поиск твитов с помощью библиотеки twitter4j? - PullRequest
2 голосов
/ 05 ноября 2011

Я пытаюсь выполнить поисковый запрос "около", чтобы получить сообщения о приближении твитов к определенному местоположению, используя

twitter4j, но получаю исключение.

public static void main(String[] args) {
    Twitter twitter = new TwitterFactory().getInstance();
    try {
        String searchTerm = "jobs near:\"san francisco\"";
        QueryResult result = twitter.search(new Query(searchTerm));
        List<Tweet> tweets = result.getTweets();
        for (Tweet tweet : tweets) {
            System.out.println("@" + tweet.getFromUser() + " - " + tweet.getText());
        }
    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to search tweets: " + te.getMessage());
    }
}

Исключение, которое я получаю

403: Запрос понятен, но ему было отказано. Прилагаемое сообщение об ошибке объяснит, почему. Этот код используется, когда запросы отклоняются из-за ограничений на обновление (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following). {"error": "Неверный параметр"} Соответствующие обсуждения могут быть в Интернете по адресу: http://www.google.co.jp/search?q=d35baff5 или http://www.google.co.jp/search?q=08c3b248 TwitterException {exceptionCode = [d35baff5-08c3b248], statusCode = 403, retryAfter = -1, rateLimitStatus = null, featureSpecificRateLimitStatus = null, version = 2.2.5} Не удалось найти твиты: 403: запрос понят, но он отклонен , Прилагаемое сообщение об ошибке объяснит, почему. Этот код используется, когда запросы отклоняются из-за ограничений на обновление (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following). {"error": "Неверный параметр"}

at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:185)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65)
at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:85)
at twitter4j.TwitterImpl.get(TwitterImpl.java:1895)
at twitter4j.TwitterImpl.search(TwitterImpl.java:98)
at com.xebia.lightning.scheduler.JobTweetsArchiver.main(JobTweetsArchiver.java:115)

1 Ответ

3 голосов
/ 05 ноября 2011

См. Здесь : «Оператор ближнего нельзя использовать для поисковых запросов. Вместо этого используйте параметр геокодирования».

Итак, передайте параметр геокодирования в поиск:

Возвращает твиты пользователей, находящихся в пределах заданного радиуса заданной широты / долготы.Местоположение преимущественно берется из Geotagging API, но будет возвращаться к их профилю Twitter.Значение параметра задается как «широта, долгота, радиус», где единицы радиуса должны быть указаны как «ми» (мили) или «км» (километры).Обратите внимание, что вы не можете использовать оператор ближнего через API для геокодирования произвольных местоположений;однако вы можете использовать этот параметр геокода для непосредственного поиска рядом с геокодами.

...