Olá pessoal, como este é o meu primeiro artigo, eu gostaria de agradecer a toda a equipe Aspbrasil que é uma equipe fantástica.
Neste artigo veremos como utilizar o Twitter em seu site pessoal, blog, etc.
Utilizaremos Asp.NET com C#, utilizaremos também produtos prontos na qual o próprio Twitter oferece os serviços, como Badges e Widget, sendo os mesmos gratuitos e open-source.
Widget
http://twitter.com/goodies/widgets
Badges
http://twitter.com/login
WIDGET
Utilizar um widget em seu site é rápido e fácil, no exemplo abaixo será explicado como colocar um widget em seu web site.
1) Acesse a URL http://twitter.com/goodies/widgets
2) Clique em My Website.

3) Selecione um tipo de Widget, no caso escolhemos o de Perfil.
4) Digite o nome de usuário do twitter desejado.
5) Clique em Test Settings e veja como irá ficar.
6) Clique em Finish & Grab Code para ver o código fonte

7) Você tem o código fonte para utilizar em seu site
8) Existe um menu para assessorar a personalização do widget

BADGES
Utilizar um Badges é muito fácil, no exemplo abaixo será explicado como utilizar um badge em seu web site de maneira rápida e fácil.
1) Acesse a URL http://twitter.com/login

2) Escolha o tipo de serviço. No exemplo abaixo foi escolhido Other de forma que desejamos colocá-lo em um web site.
3) Clique em continue.

4) Escolha o tipo desejado de widget.
5) Clique em continuar.

6) Escolha o numero de tweets que deseja exibir.
7) Escolha se haverá titulo.
8) Visualize se as informações desejadas estão corretas no Box de visualização.
9) Pegue o código e utilize no seu site.

ASP.NET + C#
Código simples e fácil, separado em módulos de leitura e escrita de modo que o programador possa utilizá-lo com fácil entendimento.
Código C#
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Xml;
using System.IO;
public partial class controles_Twitter : System.Web.UI.UserControl
{
// Propriedades e Atributos
private string _usuario;
public string Usuario
{
get { return _usuario; }
set { _usuario = value; }
}
private int _qtdemensagens;
public int Qtdemensagens
{
get { return _qtdemensagens; }
set { _qtdemensagens = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
Escrever();
}
/// <summary>
/// Lê os tweets do determinado usuario e com uma determinada
/// quantidade de tweets
/// </summary>
/// <returns></returns>
protected string Ler()
{
try
{
_usuario = "leomoreira";
_qtdemensagens = 4;
string url = string.Format("http://twitter.com/statuses/
user_timeline.xml?screen_name={0}", _usuario);
WebClient client = new WebClient();
Stream stream = client.OpenRead(url);
stream.Flush();
StreamReader reader = new StreamReader(stream);
return reader.ReadToEnd();
}
catch
{
return "Erro ao conectar o Twitter";
}
}
/// <summary>
/// Escreve os tweets em um DataTable e depois coloca ele
/// em um DataListView
/// </summary>
protected void Escrever()
{
try
{
XmlDocument DocXML = new XmlDocument();
DocXML.LoadXml(Ler()); //Chama o metodo ler
XmlNodeList lista;
lista = DocXML.SelectNodes("//status");
string nome = DocXML.SelectSingleNode("//status").SelectSingleNode("//user").SelectSingleNode("name").InnerText;
string screen_name = DocXML.SelectSingleNode("//status").SelectSingleNode("//user").SelectSingleNode("screen_name").InnerText;
string pic_url = DocXML.SelectSingleNode("//profile_image_url").InnerText;
imgAvatar.ImageUrl = pic_url;
HyperLink1.Text = "@" + screen_name;
HyperLink1.NavigateUrl = "http://www.twitter.com/" + screen_name;
DataTable tabela = new DataTable();
tabela.Columns.Add("HORARIO");
tabela.Columns.Add("MENSAGEM");
int count = 0;
foreach (XmlNode node in lista)
{
if (count < _qtdemensagens)
{
DataRow linha = tabela.NewRow();
DateTime dataxml = PadraoDataHora(node.SelectSingleNode("created_at").InnerText);
TimeZone zona = TimeZone.CurrentTimeZone;
dataxml = zona.ToLocalTime(dataxml);
linha["HORARIO"] = dataxml.ToString("dd/MM/yyyy HH:mm");
linha["MENSAGEM"] = node.SelectSingleNode("text").InnerText.ToString();
tabela.Rows.Add(linha);
count++;
}
}
dtlMensagens.DataSource = tabela;
dtlMensagens.DataBind();
}
catch
{
//Vazio
}
}
/// <summary>
/// Metodo que muda o padrao de data e hora
/// para o padrao dia/mes/ano hora
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
private DateTime PadraoDataHora(string date)
{
string dayOfWeek = date.Substring(0, 3).Trim();
string month = date.Substring(4, 3).Trim();
string dayInMonth = date.Substring(8, 2).Trim();
string time = date.Substring(11, 9).Trim();
string offset = date.Substring(20, 5).Trim();
string year = date.Substring(25, 5).Trim();
string dateTime = string.Format("{0}-{1}-{2} {3}", dayInMonth, month, year, time);
DateTime ret = DateTime.Parse(dateTime);
return ret;
}
}
Código Asp.Net
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Twitter.ascx.cs" Inherits="controles_Twitter" %>
<div style="display: block">
<div style="height: 65px; display: block;">
<div style="float: left">
<asp:Image ID="imgAvatar" runat="server" />
</div>
<div style="display: block; font-family: Tahoma; font-size: 10pt; font-weight: bold;
margin-left: 20px">
Posts no Twitter<br />
<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank">[HyperLink1]</asp:HyperLink>
</div>
</div>
<div style="display: block; font-family: Tahoma; font-size: 8pt">
<asp:DataList ID="dtlMensagens" runat="server" Width="100%">
<AlternatingItemTemplate>
<div style="width: 100%; border-width: 1px; border-style: solid; border-color: Gray">
</div>
<asp:Label ID="lblHorario" runat="server" Text='<%# Eval("HORARIO") %>'></asp:Label>
<br />
<asp:Label ID="lblMensagem" runat="server" Text='<%# Eval("MENSAGEM") %>'></asp:Label>
</AlternatingItemTemplate>
<FooterTemplate>
<div style="width: 100%; border-width: 1px; border-style: solid; border-color: Gray">
</div>
</FooterTemplate>
<ItemTemplate>
<div style="width: 100%; border-width: 1px; border-style: solid; border-color: Gray">
</div>
<asp:Label ID="lblHorario" runat="server" Text='<%# Eval("HORARIO") %>'></asp:Label>
<br />
<asp:Label ID="lblMensagem" runat="server" Text='<%# Eval("MENSAGEM") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
</div>
</div>
Resultado obtido

Obrigado pessoal, espero que tenham gostado e até a próxima....