Criando um cliente para Twitter – Parte 1
Fim do período de manutenção!
Finalmente esse blog ficou com uma interface mais agradável e bonita.
Todos os créditos ao @jpalacio1988 . Muito obrigado!
Vamos ao assunto de hoje: criando um cliente de Twitter.
Ah o Twitter… Quem não usa o twitter? Quem nunca ouviu falar do twitter? Acho que hoje em dia é bem difícil.
Mas aproveitar todas as funcionalidades do twitter no navegador é – na minha opinião – um saco! Toda hora fica recarregando, tem horas que aparece aquela PIIII daquela baleia dizendo que o servidor está congestionado…
Enfim, para não passar por esses probleminhas normalmente a gente apela para os clientes de twitter, que nada mais são do que softwares que acessam o twitter com a nossa conta e mostram as atualizações de um jeito bem bonitinho e cheio de frescuras - vide TweetDeck, ÜberTwitter, entre outros.
Contudo, esses clientes não foram feitos especificamente para nós, ou seja, podem existir funções que não sejam do nosso gosto e pode também faltar algumas funções que sejam essenciais para nós. Então por que não criar o seu próprio cliente de Twitter? É muito simples e personalizável, podemos criá-lo do jeito que quisermos. Vamos a algumas informações essenciais:
Para conseguir mostrar as informações da nossa conta do Twitter em uma telinha de um software desktop, eles fazem chamadas para a API do Twitter. A equipe do Twitter já deixou tudo pronto pra nós não termos muito trabalho recuperando as informações. Basta fazer uma requisição HTTP e será retornado um XML com as informações requisitadas.
Para a sorte do desenvolvedor Java, um tal de Yusuke Yamamoto desenvolveu uma biblioteca chamada Twitter4J onde ele já encapsula todas as requisições HTTP, tratamentos da resposta, enfim, é responsável por todo o trabalho duro necessário para interagir com o Twitter, sendo assim, nós podemos nos concentrar mais na aplicação em si.
Nessa primeira parte do tutorial vou mostrar apenas como conectar, atualizar o status e recuperar a timeline. Nas próximas partes a gente vai modelando e dando vida ao nosso cliente.
Mãos a obra então: baixe o twitter4j-core e crie uma nova aplicação no NetBeans (não precisa ser aplicação desktop por enquanto). Adicione a biblioteca que você acabou de baixar às bibliotecas do projeto como na figura:
O código da aplicação é muito simples, como segue abaixo:
public static void main(String[] args) { try { String usuario = "seu nome de usuario"; String senha = "sua senha"; //conectando Twitter twitter = new TwitterFactory().getInstance(usuario, senha); //recuperando a timeline List<status> timeline = twitter.getFriendsTimeline(); System.out.println("Exibindo a timeline"); System.out.println("----------------------------------------"); for (Status s : timeline) { System.out.println(s.getUser().getScreenName() + " - " + s.getText()); } System.out.println("----------------------------------------"); //atualizando o status String novoStatus = "#JavaSimples - testando o twitter4j!"; twitter.updateStatus(novoStatus); System.out.println("Status atualizado com sucesso!"); } catch (TwitterException ex) { System.out.println("Erro: " + ex.toString()); } }
Para conectar no Twitter é criado um objeto da classe Twitter que é um intermediário entre a nossa aplicação e a API do Twitter, ou seja, tudo o que nós quisermos fazer deve ser através de um método desse objeto. Ele é criado seguindo um padrão de projeto (olha a engenharia de software marcando presença…) chamado Abstract Factory – que provê a padronização na criação de um objeto, mas como a engenharia não é o foco aqui, vamos em frente.
Logo em seguida, é criada uma lista chamada timeline que é do tipo List<Status> e que recebe todas as atualizações das pessoas que você segue através do método getFriendsTimeLine() do nosso objeto da classe Twitter.
Cada update/status/post de um usuário no twitter é representado pela classe Status, através da qual pode-se obter qualquer tipo de informação do update/status/post. No exemplo nós recuperamos o usuário (recuperamos um objeto da classe User que contém as informações do usuário) e a partir dele, o seu screenName (sigla que te identifica no twitter. ex: fesaab) e também o texto do update/status/post.
Por fim, eu atualizo o status com uma simples mensagem e se não ocorrer nenhum erro mostra uma mensagem de sucesso.
Tudo muito prático e simples!
Ficamos por aqui nessa primeira parte do nosso tutorial sobre Java + Twitter. Quem quiser o projeto completo pode pegar aqui.
[]s,
Saab.

9 Responses so far
gilberto
abril 15th, 2010
10:31
o twuiter ta bombamdo
Donizete
abril 15th, 2010
23:04
Parabéns pelo post! Simples, claro e direto! Viva Java, viva a liberdade!!!! Vlw!
rafoso
abril 22nd, 2010
14:00
o link para o arquivo: twitter4j-core não esta funcionando!!!
tem como arrumar?? vlwss
Saab
abril 22nd, 2010
14:42
Parece que o site do twitter4j está fora ar… creio que seja passageiro mas mesmo assim eu substitui o link para o meu disco virtual. Já está 100%! =D
[]s
rafoso
abril 22nd, 2010
15:48
humm agora foi…. vlws saab
érika assumpção
novembro 28th, 2010
12:37
não consigo usar meu Twitter no meu PC, há alguns dias nem mesmo pelo TweetDeck, ainda não descobri porque, será que tem como alguem me ajudar?
Obrigada,
Érika Assumpção
rodrigo
dezembro 3rd, 2010
22:12
Estranho já conferi minha senha e usuários várias vezes e ocorre este erro:
run:
Erro: twitter4j.TwitterException: 401:Authentication credentials were missing or incorrect.
{“errors”:[{"code":53,"message":"Basic authentication is not supported"}]}
pode dar uma luz?
Saab
dezembro 5th, 2010
19:35
Infelizmente o dia que eu queria que não chegasse, chegou!
O Twitter atualizou sua política de segurança e definiu que qualquer aplicativo que queira se conectar a ele deve utilizar autenticação através do OAuth, ou seja, esse tutorial se tornou ultrapassado. =[
Daqui a algum tempo eu irei fazer outro post ensinando como utilizar o OAuth.
Quando fizer eu venho nesse post e atualizo as informações.
Até lá eu acho que você terá mais umas pesquisas pela frente. hehe
Obrigado por informar o erro e boa pesquisa.
[]
Jean
dezembro 17th, 2010
20:06
Também deu esse erro no meu! Fui pesquisar sobre OAuth e não entendi muita coisa!
Se tiver alguma referencia passa ai!
Leave a comment