Pplware

Tutorial C# – Interacção com o Twitter

Olá a todos. Hoje tenho tantas coisas para vos falar que nem sei por onde começar. O tema principal e o programa que vos disponibilizo é um ferramenta que permite ver as mensagens e enviar mensagens para o Twitter. Neste programa utilizei as API disponibilizadas pelo Twitter e uma classe já desenvolvida por Yedda.

API Twitter:

O Twitter disponibiliza vários ficheiros que podemos utilizar para comunicar com o site através de Restful Services, tentei usar directamente mas tive uns problemas, por isso usei a classe do Yedda.


Para aceder aos API basta ir a este site:

Este foi o xml que utilizei, que nos dá toda a informação dos nossos status e dos nossos amigos, bem como os seus dados.


Aplicação:

Para começar temos de adicionar algumas referências: using System.Net; using System.IO; using Yedda; using System.Web; using System.Xml; using System.Xml.Linq;

1º Passo:

Temos de criar uma uma nova instância da classe Twitter que nos é disponibilizada por Yedda Twitter twitter = new Twitter();

2º Passo:

O nosso login irá ser guardado nas settings do programa, para que possam guardar os dados para a próxima utilização do programa.

Nesta imagem podem ver os novos campos que criei.

Para aceder a este menu basta ir às propriedades do projecto. Ao fazerem esta alteração será criado o ficheiro app.config que servirá para guardar os dados para a próxima utilização; não se preocupem são automaticamente encriptados.

3º Passo

Adicionei 2 Background Workers, que são Delegates assíncronos (já falámos anteriormente), mas mais user friendly e estão disponíveis na toolbox.

Estes objectos vão permitir fazer o download dos dados do Twitter e o envio de mensagens em threads diferentes o que vai impedir que a aplicação bloqueie nestas operações demoradas. Existem 3 eventos que vamos utilizar o “do_Work” que é executado noutra thread, logo não podemos chamar objectos da form nesse método, temos de passar como argumento, o “progressChanged” que a cada chamada do método “ReportProgress” vai permitir comunicar com os objectos da form e o “RunWorkerCompleted” que é quando o processo assíncrono termina.

4º Passo


De seguida vamos utilizar um método da classe twitter “GetFriendsTimeline” que nos vai disponibilizar todos os dados que precisamos, passamos como parâmetros, o nome de utilizador, a password e o output xml. Depois temos de passar tudo para um XDocument para podermos utilizar Linq para percorrer todos os elementos do XML.

Estas linhas : TwitterPplWare.Properties.Settings.Default.User TwitterPplWare.Properties.Settings.Default.Password

São a maneira utilizada para aceder às settings do programa e retornar os dados do utilizador.

Depois com o linq é simples vamos escolher os elementos que sejam descendestes de status, que neste caso são todos, o status é o cabeçalho. Vamos fazer um loop pelos dados que recebemos e vamos preenchendo a nossa listView com o Objecto “user”, que contém todos os elementos que queremos como user.screen_name, text e data. Um truque que utilizei para descarregar as imagens foi criar um bitmap a partir de um response stream de http, isto torna o processo de recolha de dados um pouco mais lento. Outro truque foi a formatação da data, a que vem do twitter vem num formato americano estranho por isso usei isto: DateTime dtPost = DateTime.ParseExact(data, “ddd MMM dd HH:mm:ss zzzz yyyy”, System.Globalization.DateTimeFormatInfo.InvariantInfo);

Converto a data e coloco como default. De um modo geral e muito por cima esta foi a maneira de receber os dados do twitter, espero que explorem o código, porque tem muito mais que isto.

Agora vamos à parte de enviar dados para o Twitter. Para fazer essa tarefa executamos como sempre noutra thread para não bloquear, estas operações com http são um pouco lentas.

Depois muito simplesmente chamamos a função update do objecto Twitter, passando como parâmetros o user, password e o formato de output neste caso xml.


Em termo de funcionalidades, a aplicação corre minimizada e actualiza os status de 5 em 5 minutos, podem guardar os dados do utilizador nas configurações. E por falar em configurações existe um truque para isto tudo funcionar, visto o Twitter ter bloqueado a forma como o .NET envia as suas mensagens. Para isso basta ir ao ficheiro app.config e colocar esta tag xml.


Apesar de na classe Twitter isto já estar contemplado.

E pronto por hoje é tudo espero que gostem e comentem e agradeço todas as sugestões do post anterior, foram elas que me levaram a fazer este post.


Download: Código Interacção com o Twitter [310.95KB]

Quanto aos outros temas sugeridos ainda irei aqui falar sobre eles. E como sempre se tiverem dúvidas, sugestões para próximos post deixem um comentário. Obrigado a todos e boa programação.


Licença: Freeware
Sistemas Operativos: Windows XP/Vista/Win7
Download: Twitterpplware 1.0.0.0 [64.73KB]
Homepage: Peopleware

Exit mobile version