Tenho visto que muitas pessoas vêm aderindo ao Twitter e que muitas ferramentas vêm sendo desenvolvidas em função disso.
Por isso, resolvi criar uma série de dicas que ajudarão aos desenvolvedores a desvendar os “macetes” de como trabalhar com a API do Twitter (http://apiwiki.twitter.com).
Nesta dica mostrarei como exibir as mensagens de seu Twitter em uma página ASP.NET de forma personalizada.
Como funciona?
1 – Criamos uma rotina que faz uma requisição ao serviço, informando como parâmetro o nome de usuário e a quantidade de mensagens que desejamos retornar. Com isso será retornado um XML contendo as mensagens deste usuário.
Daí então carregamos o XML em um DataSet para facilitar posteriormente a sua exibição.
Veja o código abaixo:
private DataSet RecuperarMensagens()
{
string usuario = "danielsgarcia";
string quantidade = "3";
string url; DataSet ds;
try
{
ds = new DataSet();
url = string.Format("http://twitter.com/statuses/user_timeline.xml?screen_name={0}&count={1}", usuario, quantidade);
System.Net. WebClient cliente = new System.Net.WebClient();
System.IO.Stream stream = cliente.OpenRead(url);
stream.Flush();
ds.ReadXml(stream);
return ds;
}
catch (Exception ex)
{
throw ex;
}
}
2 – O próximo passo é exibir os dados em sua página. Para isso eu utilizo um DataList, pois acho mais flexível na diagramação do layout. Porém podemos utilizar uma GridView ou outro controle.
Veja o a implementação do DataList no código da página:
<form id="form1" runat="server">
<div>
<table cellpadding="0" cellspacing="0" width="300px">
<tr>
<td rowspan="2">
<asp:Image ID="ImageFoto" runat="server" />
</td>
<td>
Meu Twitter
</td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLinkNome" runat="server"></asp:HyperLink>
</td>
</tr>
<tr>
<td colspan="2">
<asp:DataList ID="DataListMensagens" runat="server">
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
<HeaderTemplate>
<hr />
</HeaderTemplate>
<FooterTemplate>
<hr />
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="LabelData" runat="server" Text='<%# Eval("created_at")
%>'></asp:Label>
<br />
<asp:Label ID="LabelMensagem" runat="server" Text='<%# Eval("text")
%>'></asp:Label>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</div>
</form>
3 – Então, precisamos codificar uma rotina para exibição dos dados, conforme o método a seguir:
private void ExibirMensagens()
{
string nomeExibicao;
string urlImagem;
DataSet ds;
try
{
ds = this.RecuperarMensagens();
nomeExibicao = ds.Tables["user"].Rows[0]["screen_name"].ToString();
urlImagem = ds.Tables["user"].Rows[0]["profile_image_url"].ToString();
ImageFoto.ImageUrl = urlImagem;
HyperLinkNome.Text = "@" + nomeExibicao;
HyperLinkNome.NavigateUrl = "http://twitter.com/" + nomeExibicao;
DataListMensagens.DataSource = ds.Tables["status"];
DataListMensagens.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
E para finalizar invocá-lo no evento Load da página:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
this.ExibirMensagens();
}
Abaixo o resultado:
Espero que a dica seja útil.
Continuem acompanhando a série de post que farei sobre como trabalhar com a API do Twitter utilizando o ASP.NET.
Ah! Já ia me esquecendo! Siga-me no Twitter: http://twitter.com/danielsgarcia