Usando a API de Streaming do Twitter com Ruby

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.

Deixe um comentário

*

Antes de comentar, saiba que todos os comentários são moderados. Portanto, ofensas pessoais não serão toleradas. E, por favor, evite palavrões desnecessários.

As opiniões expostas nos comentários não refletem as do autor do blog.