我正在尝试执行“近距离”搜索查询,以便使用
将推文逼近某个位置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)
答案 0 :(得分:3)
See here:&#34;近运营商无法用于搜索查询。请改用地理编码参数&#34;。
因此,将geocode参数传递给搜索:
返回位于给定纬度/经度的给定半径内的用户的推文。该位置优先采用地理标记API,但将回归到他们的Twitter个人资料。参数值由&#34;纬度,经度,半径&#34;指定,其中半径单位必须指定为&#34; mi&#34; (英里)或&#34; km&#34; (公里)。请注意,您不能通过API使用near运算符来对任意位置进行地理编码;但是,您可以使用此地理编码参数直接搜索地理编码附近。