De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Miguel Galves
Data de Publicação: 30 de maio de 2008
Já ouviu falar do Twitter? O sistema de microblog que tem feito muito sucesso na Internet recentemente (e que tem deixado o RubyOnRails em máus lençóis também, mas isto é assunto para outro dia...). Se não conhece, aconselho dar uma visitada: tem algumas iniciativas interessantes ocorrendo por lá.
Eu gostaria de comentar aqui sobre a questão de integração com o Twitter: conversar via software com o Twitter é extremamente simples, graças à API REST de acesso. REST? REpresentational State Transfer, termo criado por Roy Fielding, computeiro americano e um dos principais autores da especificação do protocolo HTTP, em sua tese de PhD.
O próprio REST tem como pilar o protocolo HTTP. A idéia básica é definir que existem recursos (fontes de informação) que podem ser acessados através de um identificador global (que no caso do HTTP, é conhecido como URL), e que retornam uma representação da informação (XML, JSON, etc). Os recursos são considerados objetos, e o REST utiliza as ações do protocolo HTTP para agir sobre estes objetos: GET, POST (as mais famosas, para quem trabalha com sistemas web e com ajax), PUT e DELETE.
Assim como no HTTP, o REST não armazena sessão: o acesso tem que ser feito sem que o recurso precise ter conhecimento de requisições passadas, proxys, caches e outros recursos utilizados em sistemas web. Ou seja: qualquer serviço REST pode ser acessado apenas com a URI apropriada e a ação desejada.
A API REST do Twitter permite acesso a todas as funcionalidades do sistema, de forma extremamente simples. Por exemplo: caso eu queira listar as mensagens recebidas pelo usuário job4dev em formato xml, basta acessar a URL http://twitter.com/statuses/friends_timeline/job4dev.xml. O sistema retorna informações também em JSON (neste caso, bastaria mudar o xml do final por json).
A maioria dos comandos requer autenticação, que no caso do Twitter é feita usando o BasicAuth: a informação de usuário e senha é enviada em um header chamado Authorization, cujo conteúdo é uma string na forma
Authorization: Basic < dados em base 64>,
onde < dados em base 64> é usuario:senha codificado
em base64
(formato muito utilizado para transmissão de dados na web).
Vou colocar aqui um exemplo em Python para enviar uma mensagem nova para uma conta no Twitter. A função encodestring é responsável por converter para base64, e a função urlencode gera uma string no formato correto para colocar na requisição HTTP:
auth = encodestring('%s:%s' % (user, password))[:-1] header["Authorization"] = 'Basic %s' % self.auth encoded_post_data = urlencode({"status":status}) req = Request(TwitterSender.url, encoded_post_data, header) url_data = urlopen(req)
O mais interessante desta API é que além de ser simples, ela é muito bem documentada: http://groups.google.com/group/twitter-development-talk/web/api-documentation
Miguel Galves é Engenheiro de Computação, editor do blog Log4Dev e do jobboard de TI Job4Dev
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários