2011-11-05 75 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