Что такое параметры запроса и как я могу передать их в фильтр Tweetstream :: Client ... (query_parameters = {}) - PullRequest
0 голосов
/ 02 июля 2011

Я использую драгоценный камень Tweetstream для получения статусов из Twitter.Это работает:

 Tweetstream::Client.new('user', 'pw').track('alice', 'wonderland') 

Однако я знаю, что хочу ограничить сбор твитов для обоих (i) конкретных пользователей (ii) конкретными словами.Драгоценный камень Tweetstream предоставляет этот метод:

 Tweetstream::Client.new('user', 'pw').filter(query_params = {}, &block)

Но я не могу понять, как передать query_parameters = {}.Я пытаюсь это так:

 Tweetstream::Client.new('user', 'pw').filter(
               {:follow => ('212380730', '23234252'), 
                :track => ('alice', 'wonderland') 
               } ) 

Но я получаю ошибки, связанные с синтаксисом, например,

синтаксическая ошибка, неожиданный tSYMBEG, ожидание '}'

Спасибо за вашу помощь!

Следующее из Tweetstream RDOC: filter (query_params = {}, & block)

Выполнить вызов статусов /Метод фильтрации API потоковой передачи вы можете предоставить: follow,:: track или оба в качестве параметров для отслеживания твитов указанных пользователей или отслеживания ключевых слов.Этот метод предоставляется отдельно для случаев, когда он будет сохранять количество соединений HTTP для объединения отслеживания и следования.

Это источник метода .filter:

 def filter(query_params = {}, &block)
   [:follow, :track].each do |param|
   if query_params[param].is_a?(Array)
   query_params[param] = query_params[param].collect{|q| q.to_s}.join(',')
     elsif query_params[param]
       query_params[param] = query_params[param].to_s
     end
   end
   start('statuses/filter', query_params.merge(:method => :post), &block)
 end

1 Ответ

1 голос
/ 02 июля 2011

я думаю, что вы имеете в виду [] вместо использования () в качестве фильтра и трека, параметры: filter и: track в параметрах запроса должны быть массивами

...