.NET

3 jul, 2008

Utilizando a API do Twitter com ASP.net

Publicidade

Olá amigos. Depois de um longo tempo sem publicar novos artigos, volto a escrever atendendo a algumas pessoas que me pediram um artigo explicando como utilizar a API do Twitter.

O Twitter, para quem ainda não conhece, é uma rede social que permite que seus usuários enviem mensagens de texto com até 140 caracteres. As mensagens (também chamadas de atualizações ou updates) são mostradas no perfil do usuário e dos amigos de sua rede. Você também pode receber as atualizações por RSS, SMS, etc. O meu Twitter é http://twitter.com/walteram e o iMasters também tem o seu, que é http://twitter.com/imasters.

Uma das coisas mais interessantes do Twitter é a mobilidade. Já existem diversos clientes para ele que permitem, por exemplo, enviar uma mensagem através do seu celular enquanto dirige (embora isso não seja muito seguro).

Pois bem, neste artigo mostrarei como enviar e receber mensagens do Twitter utilizando o ASP.net. Você verá que isto é extremamente simples.

Você pode baixar o código completo ou rodar no endereço: http://www.walteram.com.br/artigos/twitter.

1) Enviando mensagens

Para enviar mensagens, você simplesmente faz uma requisição para o endereço http://usuario:senha@twitter.com/statuses/update.xml.

O código abaixo faz isso em ASP.NET. Os parâmetros usuário e senha são necessários para enviar a mensagem.

Public Sub Enviar()
Dim url As String = "http://SeuLoginAqui:SuaSenha@twitter.com/statuses/update.xml?status=olá!"
Dim Req As Net.WebRequest = Net.WebRequest.Create(url)
Req.Method = "POST"
Req.Credentials = New Net.NetworkCredential("SeuLoginAqui", "SuaSenha")
Req.ContentType = "text/xml; charset=utf-8"
Req.GetResponse()
Response.Write("mensagem enviada!")
End Sub

2) Obtendo as mensagens

Para obter as mensagens você faz uma requisição ao Twitter através de um dos endereços abaixo:

http://twitter.com/statuses/user_timeline/usuario.xml

(mensagens do usuário)

http://twitter.com/statuses/friends_timeline/usuario.xml

(mensagens do usuario e de seus amigos)

http://twitter.com/statuses/replies/usuario.xml

(mensagens diretas para o usuário)

A resposta será um XML contendo a mensagem e os dados do usuário. Em alguns casos também é possível obter as mensagens nos formatos JSON, Atom e RSS. Veja o código abaixo:

Public Sub obterMensagens()
Dim Req As Net.WebRequest = Net.WebRequest.Create("http://twitter.com/statuses/user_timeline/SeuLoginAqui.xml?count=20")
Dim Resp As Net.WebResponse = Req.GetResponse()
Dim sr As New IO.StreamReader(Resp.GetResponseStream())
Dim ds As New System.Data.DataSet
ds.ReadXml(sr)
sr.Close()
Resp.Close()
For Each dr As System.Data.DataRow In ds.Tables("status").Rows
Response.Write(dr.GetChildRows("status_user")(0).Item("screen_name") & " - " & dr("text") & "<BR>")
Next
End Sub

O código acima obtém o XML através da API do Twitter e o coloca em um Dataset. Este XML contém todas as mensagens enviadas pelo usuário ao Twitter. Em seguida percorre as linhas do dataset e mostra o nome do autor e a mensagem.

O código que está disponível para download é mais completo e mostra também a foto do usuário que enviou as mensagens.

Com exceção das mensagens do usuário (mostradas no exemplo acima) sua requisição deverá ser autenticada. Também é possível especificar quantas mensagens você quer receber.

O Twitter limita as aplicações clientes como essa que estamos desenvolvendo a, no máximo, 20 requisições por hora. Para contornar isso você pode solicitar a inclusão de sua aplicação no White-List, isto é, uma lista de usuários onde não há limitações. Você pode fazer isso no endereço http://twitter.com/help/request_whitelisting. Você precisará apenas descrever sua aplicação. Antes de escrever o artigo eu preenchi esse formulário e meu usuário foi liberado em menos de 24 horas. Lembre-se disso antes de utilizar a API com grandes volumes de requisições. Mesmo sem fazer isso acredito você conseguirá rodar os exemplos numa boa.

A documentação completa da API do Twitter está disponível no endereço http://twitter.com/help/api.

Lá você encontrará, inclusive, exemplos de como implementá-la em outras linguagens, como PHP e Ruby.

É isso. Baixe o código completo no endereço http://www.walteram.com.br/artigos/twitter

E, caso ainda tenha dúvidas, mande um e-mail para nao.faca.spam@walteram.com.br ou comente este artigo. Ficarei feliz em ajudar.

Um abraço,

http://www.walteram.com.br