2011-02-12 2 views
0

검색어가 너무 많아서 트위터 403 오류가 계속 발생합니다.Twitter API 검색 - 쿼리 문자 길이를 확인하는 방법?

search = Twitter::Search.new.contains("#{self.home_team.long_name} #{self.away_team.long_name} win OR lose") 
    search.language("en").no_retweets.since_date(since) 

얼마나 많은 문자가 쿼리에 포함되어 있는지 계산하려면 어떻게해야합니까? 검색을 시도하는 것을 건너 뜁니까? 이 쿼리 복잡성의,

GET https://search.twitter.com/search.json?q=Middle%20Tennessee%20State%20Blue%20Raiders%20Florida%20International%20Golden%20Panthers%20win%20OR%20lose%20-rt%20-from%3Aespn&&lang=en&since=2011-02-09: 403: Sorry, your query is too complex. Please reduce complexity and try again. 

답변

0

나는 문제가 쿼리 길이라고 생각하지 않습니다 : 예를 들어,이 156 개 문자입니다. 더 제한적인 쿼리 또는 더 간단한 쿼리로 얻을 수있는 결과의 복잡성이나 양을 줄이십시오. 이것은 대개 반경이 너무 크고 매우 계산적으로 복잡하거나 큰 쿼리가 발생하는 근처와 같은 지리적 기반 쿼리에서 발생합니다. 여전히 쿼리 길이를 계산하려면

, 당신은 아마 이런 식으로, 당신의 매개 변수와 키를 계산하여 길이의 좋은 평가를 얻을 수 있습니다 :

search = Twitter::Search.new.contains(....).language('en') 
search.query.inject(0){ |sum, obj| sum += obj[0].size+obj[1].size+1 } 

는 당신에게의 길이를 제공해야 키 + 값 + 기호를 입력하십시오.