Я использую драгоценный камень 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