A API de Streaming do Twitter dá a possibilidade de obter em tempo real (ou quase) status públicos do Twitter. Por exemplo, você pode obter todos os tweets que contenham algum link, ou ainda que falem sobre determinada marca, produto ou palavra-chave.
E fazer essa busca por palavras-chave é super fácil com Ruby, pois já existem várias bibliotecas e gemas pra isso.
No meu exemplo, vou usar a gem twitter-stream:
1 | sudo gem install twitter-stream |
Para capturar os tweets, o código é bem simples:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | require 'rubygems' require 'twitter/json_stream' require 'json' # Dados de acesso do seu twitter user = 'usuario' password = 'senha' # Busca track = 'movie' counter = 1 EventMachine::run { stream = Twitter::JSONStream.connect( :path => '/1/statuses/filter.json', :auth => "#{user}:#{password}", :method => 'POST', :content => "track=#{track}" ) stream.each_item do |status| status = JSON.parse status puts "#{counter} - @#{status['user']['screen_name']}: #{status['text']}\n" counter = counter + 1 end stream.on_error do |message| puts "\n\n---------\nErro: #{message}\n---------\n\n" end stream.on_reconnect do |timeout, retries| puts "\n\n - Reconectando em #{timeout} segundos\n\n" end } |
Bonito, né? Dá pra criar coisas bem legais com poucas linhas de código, basta usar a imaginação.
Ah, outra gem bem bacana é a TweetStream. Você pode ver como ela funciona aqui.