2011-11-05 76 views
2

我試圖執行一個「近」搜索查詢來獲取推文接近某些位置使用如何使用twitter4j庫執行「近」搜索推文?

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)。 { 「錯誤」: 「無效參數」} 相關討論可在因特網上: http://www.google.co.jp/search?q=d35baff5http://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)。 {「錯誤」:「無效的參數」}

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) 

回答

3

See here:「不久的操作不能被用於搜索查詢使用地理編碼參數來代替。」。由位於定的緯度/經度的給定半徑內的用戶

返回鳴叫:

因此,通過地理編碼參數來搜索。該位置優先採用地理標籤API,但會回落到他們的Twitter個人資料。參數值由「緯度,經度,半徑」指定,其中半徑單位必須指定爲「mi」(英里)或「km」(公里)。請注意,您不能通過API使用near運算符來對任意位置進行地理編碼;但是,您可以使用此地理編碼參數直接在地理編碼附近搜索。

+0

你能分享任何鏈接,顯示如何使用geotagging api使用twitter4j獲取GeoLocation嗎? – Shekhar