Поиск API Twitter - как проверить длину символа запроса? - PullRequest
0 голосов
/ 12 февраля 2011

Я получаю сообщение об ошибке Twitter 403. поисковый запрос слишком много символов.

  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)

Как рассчитать количество символов в запросе, поэтому я пропускаю попытку поиска по нему?Например, это 156 символов:

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.

1 Ответ

0 голосов
/ 12 февраля 2011

Не думаю, что проблема в длине вашего запроса, а в сложности запроса. Попробуйте уменьшить сложность или количество результатов, которые вы можете получить с помощью более строгого или более простого запроса. Это обычно происходит с запросами на географической основе, например, рядом, где радиус слишком велик и приводит к очень сложному или крупному запросу.

Если вы все еще хотите посчитать длину запроса, вы, вероятно, сможете получить точную оценку длины, подсчитав параметры и ключи, например:

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

Это должно дать вам длину ключа + значение + символ вашего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...