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!!!
