Ola Pessoal. Hoje eu vou falar sobre uma biblioteca para recuperar os dados do twitter que é a LinqToTwitter.
Ela é fácil de trabalhar a documentação é boa e tem bastante exemplos de uso.
Então vamos lá. Mãos a obra.
Preparando o ambiente
Siga os passos abaixo na ordem descrita
Para que o twitter funcione de modo correto precisamos criar uma aplicação dentro do twitter. Este passo não é obrigatório caso você queira pegar apenas os tweets públicos, mas se desejar pegar de um usuário específico terá que usar os passos descritos abaixo.
-
Faça login na sua conta do twitter neste link https://dev.twitter.com/apps/new
-
Uma página semelhante à esta deverá ter sido aberta para você: (Clique na miniatura para ver a
imagem da tela.) -
Preencha os campos
-
“Name” (Nome da sua aplicação)
-
“Description” (Descrição da sua aplicação)
-
“WebSite” (Coloque a URL do seu site onde as pessoas irão acessar os tweets)
-
Mantenha esta página aberta, pois iremos usar estas configurações.
Passos para criar o projeto
-
Faça o download da dll Linq2Twitter. Link da versão que usamos no artigo http://linqtotwitter.codeplex.com/releases/view/69833.
-
Descompacte o arquivo que você recebeu, lembre-se do diretório, você ira precisar dele
-
Abra o Visual Studio e crie uma nova aplicação web
-
Faça referencia à dll LinqToTwitter.dll, ela deverá estar no diretório onde você descompactou os arquivos no passo 2
Você não precisa ter uma conta no twitter para usar a DLL, só que neste caso você ira recuperar apenas os tweeters públicos
Código de exemplo para recuperar os tweets públicos:
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Data" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Linq To Twitter</title>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
try
{
var twitterCtx = new LinqToTwitter.TwitterContext();
var publicTweets =
from tweet in twitterCtx.Status
where tweet.Type == LinqToTwitter.StatusType.Public
select tweet;
System.Collections.Generic.List<object> data = new System.Collections.Generic.List<object>();
publicTweets.ToList().ForEach(
tweet =>
{
data.Add(new { Nome = tweet.ScreenName, Mensagem = tweet.Text });
}
);
grdTwitter.DataSource = data;
grdTwitter.DataBind();
}
catch (Exception ex)
{
Context.Response.Write("Impossível conectar ao twitter<br/>" + ex.ToString());
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView runat="server" ID="grdTwitter">
<Columns>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
Ok! Agora queremos pegar um tweet de um determinado usuário. Como fazer?
Prestem bastante atenção aos comentários pelo código
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Data" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Linq To Twitter</title>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
try
{
//agora que temos uma aplicação cadastrada
//temos que criar a autenticação ao twitter
//primeiro criamos um objeto de autorização do tipo LinqToTwitter.SignInAuthorizer
LinqToTwitter.SignInAuthorizer auth = new LinqToTwitter.SignInAuthorizer()
{
//lembra daquele cadastro que fizemos no twitter?
//link: https://dev.twitter.com/apps/new
//os dados que foram informados pelo twitter deverão ser informados aqui
//reparem que o mesmo nome da propriedade aqui é o mesmo nome da página do twitter.
//Não tem como errar.
Credentials = new LinqToTwitter.InMemoryCredentials()
{
ConsumerKey = "seu consumer key",
ConsumerSecret = "seu consumer secret",
//ATENÇÃO
//nesta propriedade informe o valor da página "Access token"
OAuthToken = "aqui vai o Access token",
//ATENÇÃO
//Nesta propriedade informe o valor da página "Access token secret"
AccessToken = "Aqui vai o Access token secret"
},
//estas podem manter como estão
UseCompression = true,
OAuthRequestTokenUrl = "https://api.twitter.com/oauth/request_token",
OAuthAccessTokenUrl = "https://api.twitter.com/oauth/access_token",
OAuthAuthorizeUrl = "https://api.twitter.com/oauth/authorize",
};
auth.Authorize();
var twitterCtx = new LinqToTwitter.TwitterContext(auth);
var publicTweets =
from tweet in twitterCtx.Status
where tweet.Type == LinqToTwitter.StatusType.User &&
tweet.ScreenName == "desenvolvedores"
select tweet;
System.Collections.Generic.List<object> data = new System.Collections.Generic.List<object>();
publicTweets.ToList().ForEach(
tweet =>
{
data.Add(new
{
Nome = tweet.ScreenName,
Mensagem = tweet.Text,
Site = tweet.User.URL,
});
});
grdTwitter.DataSource = data;
grdTwitter.DataBind();
}
catch (Exception ex)
{
Context.Response.Write("Impossível conectar ao twitter<br/>" + ex.ToString());
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView runat="server" ID="grdTwitter">
<Columns>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
Lembre-se: No twitter na tela que se configura o site você terá sempre que informar para qual site está liberado sua aplicação. Se não fizer isso, pode ser que não funcione quando você publicar sua aplicação.
É isso ai pessoal ![]()
Até o próximo
♦ Marcelo















'

