Arquivo da categoria ‘Uncategorized‘

 
 

Tutorial : Integrando sua aplicação Ruby (ou Rails) com o Twitter

Nesta semana liberamos a implementação da API do Twitter que desenvolvemos e utilizamos no mais novo projeto da Webco, a Tuitersfera. Liberamos a API no GitHub com o nome de Tuiter (isto mesmo, Tuiter com TU, bem abrasileirado). Neste post farei um pequeno tutorial de introducão ao uso da Gem Tuiter para integrar sua aplicação com o Twitter.

Instalando a gema Tuiter

Se você ainda não adicionou o GitHub às suas fontes de gemas, execute o comando abaixo. Se já fez isto, pule este passo e vá direto para o comando seguinte para a instalação da gema.

1
% gem sources -a http://gems.github.com

Instalando a gema em seu computador:

1
% sudo gem install webco-tuiter

Testando a instalação

Para testar a instalação, basta você abrir o interpretador Ruby e executar os comandos abaixo. Utilize seu usuário do Twitter e sua senha na chamada que instancia a classe cliente da API. Se tudo der certo, o código deve apresentar a sua descrição (de seu perfil) no Twitter.

1
2
3
4
5
6
7
8
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
voce = cli.get_user("seu_login")
 
puts voce.description

Todos os métodos de manipulação da API estão na classe Client.

Atualizando seu status no Twitter

Para atualizar seu status no Twitter basta usar o método update() da classe Client. Veja:

1
2
3
4
5
6
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
cli.update("Olá mundo, estou no Twitter!!!")

Consultando seus @replies

Utilize o método get_replies() da classe Client. Este método trará os 20 últimos updates recebidos pelo usuário que você usou para inicializar a classe Client. Você pode pegar mais replies paginando os resultados, para isto basta passar o parâmetro page na chamada do método. O código abaixo mostrará seus 40 últimos replies:

1
2
3
4
5
6
7
8
9
10
11
12
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
replies = []
replies |= cli.get_replies
replies |= cli.get_replies(:page => 2)
 
replies.each do |reply|
  puts "From #{reply.user.screen_name} @ #{reply.created_at.to_s} : #{reply.text}"
end

Enviando uma mensagem direta (direct)

Utilize o método direct_new() da classe Client. Os parâmetros são o id ou o login do usuário para quem você deseja enviar a mensagem e a mensagem a ser enviada. Veja:

1
2
3
4
5
6
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
cli.direct_new("crisdias","olá cris, quanto vale um whuffie?")

Consultando dados de um usuário

Para isto você deve usar o método get_user da classe Client. O resultado é um objeto da classe ExtendedUser e ela contém métodos para consultar cada atributo de um usuário. Veja:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
edney = cli.get_user("interney")
 
puts edney.name  # Nome do usuário
puts edney.screen_name  # Login do usuário
puts edney.description  # Descrição do perfil do usuário
puts edney.url  # URL do perfil do usuário
puts edney.followers_count  # Quantidade de seguidores do usuário
puts edney.friends_count  # Quantidade de amigos (pessoas que ele segue) do usuário
puts edney.location  # Localização do perfil do usuário

Dicas finais

Existe um limite de utilização da API do Twitter para cada usuário. Este limite, normalmente, é de 100 requisições por hora. Então, cuidado para não estourar o limite, isto fará com que você não consiga interagir com o Twitter até acabar aquela hora. Este limite é chamado de Rate Limit e também pode ser consultado pela nossa implementação da API. Para isto utilize o método rate_limit da classe Client. O resultado é uma estrutura que traz dados sobre como anda seu limites de uso da API. Veja:

1
2
3
4
5
6
7
8
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
cli.rate_limit
 
=> #<Tuiter::RateLimit:0x1802e3c @reset_window=2706.502303, @reset_time=Tue Mar 17 21:15:48 -0300 2009, @hourly_limit=100, @reset_time_in_seconds=Tue Mar 17 21:15:48 -0300 2009, @remaining_hits=84>

Observe que, no exemplo, ainda temos 84 requisições restantes (remaining_hits) até estourar o limite de uso da API na hora corrente. E ainda, a hora corrente acaba às 21:15 (reset_time) e ai teremos mais 100 requisições de limite.

A outra dica é consultar a documentação oficial da API do Twitter para entender melhor como ela funciona.

Colabore com nossa API

O projeto está hospedado no GitHub e qualquer um pode colaborar. Para entender melhor como isto pode acontecer, entre em contato com os desenvolvedores que estão cuidando dela (Luiz Rocha, Luis Cipriani e o Lucas Húngaro) através do email tuitersfera (arroba) webcointernet.com. Se você encontrar algum bug, tiver alguma sugestão ou desenvolver qualquer coisa legal com a API, também não deixe de avisar.

Boa Sorte e boas Tuitadas!!!


Últimos Leitores

Ver todos no BlogBlogs | Controlar visibilidade

Destaques