Resolvi experimentar um pouco a Twitter API. É linda, do jeito que toda API deveria ser. É REST, muito fácil de entender e colocar para funcionar, e devolve dados em XML, JSON, RSS e ATOM.
Essa simplicidade permite interagir com a API usando ferramentas simples da linha de comando do Unix, como o wget e a cURL. Para nossos exemplos, vamos usar cURL. Se você usa Ubuntu, antes de começar faça:
sudo apt-get install curl
Para fazer um simples post, por exemplo, você pode digitar, em seu terminal:
curl -u seu_username:sua_senha -d status="Twittando do terminal. Aprendi com o Elcio: http://blog.elcio.com.br/brincando-com-a-api-do-twitter/" http://twitter.com/statuses/update.json
É isso mesmo, meninos e meninas, é só um post com autenticação, mais nada. RESTful, simples e elegante, deixar qualquer SOAP no chinelo. Inspirador para qualquer um que precise projetar uma API. Isso retorna dados em JSON. Se você quiser os mesmos dados em XML, ATOM ou RSS, basta mudar a extensão na url.
Agora vamos automatizar isso. Eu criei um arquivo /usr/local/bin/twitter com o seguinte conteúdo:
source $HOME/.twitter
curl -u $user:$password -d status="$@" http://twitter.com/statuses/update.json
Naturalmente, criei o arquivo como root e dei permissão de execução para todos os usuários. Agora, no diretório de cada usuário, basta criar um arquivo .twitter com o seguinte conteúdo:
user=seu_username
password=sua_senha
Pronto, tendo feito isso, qualquer usuário que tenha o arquivo .twitter em seu home pode twittar do terminal com:
twitter "Twittando do terminal, aprendi com o Elcio: http://blog.elcio.com.br/brincando-com-a-api-do-twitter/"
Simples e indolor, agora você pode automatizar suas twittadas com shell script. Pode, por exemplo, twittar toda vez que seu servidor baleiar, ou agendar twits com cron.
Search API
A Search API também é espetacularmente simples, dê uma olhada. Fiz a UPBox usando a Twitter Search API, por exemplo, com 22 linhas de código.



26/12/2008 at 19:07
Já tinha dado uma olhada na API do Twitter e fiquei entusiasmado com a simplicidade, não é a toa que existem tantas apps usando ela e gerando 90% do tráfego do site. Sua idéia de twittar via shell foi muito boa, dá pra criar umas ferramentas legais de monitoramento do servidor e acompanhar pelo Twitter
26/12/2008 at 19:48
Muito bom, Elcio! Deu um overview legal nao só to Twitter, mas tambem aprendi mais uma no Linux! Valeus!
28/12/2008 at 11:54
Muito bom!
já to dando uma olhada na api!
abraços.
28/12/2008 at 20:24
Realmente lindo! O SHELL SCRIPT!
06/02/2009 at 14:05
Fantástico! Já estou usando
28/02/2009 at 16:55
Olá, muito bom o artigo. Direto e simples de entender.
Agora qto a api… vc nao acha esquema dela meio furado de passar o usuário e senha direto na url? se alguém sniffar a rede putf! já era!
15/03/2009 at 13:00
@fulvius: eu acho que não passsa pela URL não. Seria muita inocência dos desenvolvedores permitirem as coisas dessa forma. Além disso, não há nada no script que evidencie essa forma de passagem de parâmetro. Na verdade, na manpage do cURL , a opção -u serve apropriadamente para enviar usuário e senha. Uma mínima pesquisa no Google me revelou que existe uma criptografia envolvida
Também gostaria de fazer uma sugestão: testando com algumas pessoas, vi que algumas que tinham senhas um pouco mais complicadas enfrentavam problemas com a autenticação. A solucação foi usar o arquivo de dados de usuário na forma:
user='seu_username'
password='sua_senha'
Depois que tava tudo funcionando, pra evitar aparecer qualquer coisa no meu terminal, adicionei a opção -s (de Silent) ao curl. A desvantagem disso é que você não vê se ocorreu algum erro.
19/03/2009 at 14:03
[…] Arquivado em: Unix — blogdobragil @ 5:03 pm A inspiração para essa brincadeirinha veio deste post do fechaTag. Fiz o mesmo, com algumas adaptações para o […]
19/03/2009 at 15:02
[…] inspiração para essa brincadeirinha veio deste post do fechaTag. Fiz o mesmo, com algumas adaptações para o […]
15/04/2009 at 14:12
MUITO BOM! ja to fazendo
abraços
15/04/2009 at 17:22
voce pode me responder se quando posta no CURL aparece no twitter, 'from web' ou algo diferente? Obrigado se puder me enviar um email.
abraços