fev

24

Criando um cliente para Twitter – Parte 1

By Felipe Saab

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! :D

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! :D

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

o twuiter ta bombamdo

Parabéns pelo post! Simples, claro e direto! Viva Java, viva a liberdade!!!! Vlw!

o link para o arquivo: twitter4j-core não esta funcionando!!!

tem como arrumar?? vlwss

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

humm agora foi…. vlws saab

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

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?

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.
[]

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