mai 2009 18

Há alguns dias finalmente cliquei no link “API” que está no fim de praticamente todas as telas do Twitter. Descobrí que programar o Twitter é tão simples quanto usá-lo! Eis que a estratégia de ultra-simplicidade do portal se repete na API de web services(REST) do Twitter:
- O esquema de autenticação é o mais antigo da Web, via Basic Auth. Em resumo, Basic Auth é um campo no cabeçalho que concatena usuário:senha, codificados com Base64 para evitar caracteres reservados ao HTTP.
- As chamadas são GET, POST ou DELETE. Normalmente as consultas a dados usam GET e as atualizações POST – provavelmente porque o POST não tem limite de tamanho nos dados enviados, ao contrário do GET.
- Diferente de web services “pesados” como SOAP, cada URI é ligado a apenas um método/função. Então para ver os últimos 20 “Twits”(?) em todo o Twitter, você pode verificar, inclusive, via navegador. Clique aqui para ver um exemplo em XML simples.

Comecei a implementar algumas chamadas em modulos Perl individuais, e quando menos percebí já estava criando objetos para o Usuario(Zen::Twitter::User), para atualizações de usuários(Zen::Twitter::UserStatus), modulos para cada grupo de funções relacionadas, e por aí vai. Empacotei tudo no Zen Twitter Tools e acrescentei scripts de demonstração para cada função da biblioteca Zen::Twitter.

2009-05-18 – Versão 0.10 da biblioteca Zen::Twitter

Esta versão suporta os seguintes módulos:

  • Search
  • Timeline
  • Status
  • User
  • Direct Message
  • Friendship
  • Social Graph
  • Account
  • Favorite
  • Notification
  • Block
  • Help

Cada serviço está descrito, detalhadamente, no Wiki de documentação Twitter.

Gerência de Conta Twitter
account_rate_limit_status.pl – Verificar quantos créditos de API ainda tem restantes por horário, e horário da próxima zeragem
account_update_delivery_device.pl – Atualiza dispositivo móvel onde deseja receber notificações.
account_update_profile_color.pl – Atualiza cores do seu perfil.
account_update_profile.pl – Atualiza dados do seu perfil como email, localização, URL, etc
account_verify_credentials.pl – Testa os dados em credentials.xml(veja documentação para obter detalhes)

Gerência de Bloqueios
block_blocking.pl – Listar usuários que você atualmente bloqueia.
block_create.pl – Bloquear um usuário
block_destroy.pl – Desbloquear um usuário
block_exists.pl – Verifica se você está atualmente bloqueando um usuário.
block_ids.pl – Lista todos os IDs de usuários que você está bloqueando

Mensagens Diretas
direct_message_destroy.pl – Apagar uma mensagem direta
direct_message_send.pl – Envia uma mensagem direta
direct_messages.pl – Listar mensagens diretas na caixa de entrada
direct_messages_sent.pl – Listar mensagens diretas enviadas

Gerência de Favoritos
favorite_create.pl – Adicionar um status a seus favoritos
favorite_destroy.pl – Remover um status de seus favoritos
favorites.pl – Listar seus favoritos

Amigos e Seguidores
followers_not_friends.pl – Lista quais seguidores você ainda não segue
friendship_create.pl – Seguir um usuário / Follow
friendship_destroy.pl – Deixar de seguir um usuário
friendship_exists.pl – Verifica se usuario_a segue o usuario_b
friends_not_followers.pl – Lista quais amigos você segue que não te seguem ainda.
friends_timeline.pl – Últimos 20 status/atualizações de seus amigos.
mentions.pl – Últimas 20 menções a @você
public_timeline.pl – As últimas 20 atualizações em todo o Twitter, atualizadas a cada 60 segundos.

Notificações Móveis
notification_follow.pl – Passar a receber notificações moveis quando um usuário atualizar status.
notification_leave.pl – Deixar de receber notificações moveis quando um usuario atualizar seu status.

Buscas
search.pl – Interface de linha de comando para o sistema de buscas do Twitter. Exemplo: perl search.pl dire straits

Grafo Social
socialgraph.pl – Contagem simples de amigos e seguidores.

Status
status_destroy.pl – Apaga uma de suas atualizações
status_show.pl – Mostra o status de um usuário.
status_update.pl – Atualiza seu status(esta é a função principal do Twitter).

Ajuda
test.pl – Testa comunicação com servidores do Twitter. Apenas envia um pedido nulo e recebe um OK.

Usuários
user_timeline.pl – Recebe as atualizações de um usuário em ordem cronológica, é como visitar em http://twitter.com/USUARIO
user.pl – Mostra o status atual(ultima atualização) e dados gerais de um usuário específico.

Exemplos de Scripts
Cada função da biblioteca possui um script relacionado para demonstrar sua utilização, assim você pode modificá-los e criar suas próprias aplicações. Os scripts de demonstração também podem ser usados para gerenciar sua conta. Todas as funções que exigem usuário/senha utilizarão a configuração presente em credentials.xml. Edite esse arquivo e inclua seus dados de acesso para obter acesso a toda a funcionalidade do Twitter.

Não implementado na v. 0.10
- Tendências de buscas, visto que só possuem versões JSON o que não é muito útil em Perl
- Upload de imagem para o perfil e imagem de fundo do perfil.
- Função de “sign off”(sair do sistema). Em ambiente de linha de comando não temos por que apagar cookies e session.

Como Baixar o Zen Twitter Tools: zen-twitter-tools-0.10.tar.gz

A documentação dos módulos serve apenas para orientar seu uso, não é, de maneira alguma, documentação com o padrão de qualidade do CPAN. Acho que a funcionalidade do Twitter é simples o suficiente para que a biblioteca seja usada sem problemas.

O que você acha?