Desenvolvedor e Analista de Sistemas | IFPA

sábado, 16 de agosto de 2014

Tutorial C# – Interação com o Twitter

com 0 Comentário
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

+1

0 comentários :

Postar um comentário

Total de visualizações