Twittando com o Perl (parte 1)

O Perl é uma das linguagens mais utilizadas no mundo, e o programador ou webmaster moderno devem ter a habilidade fazer seus aplicativos se comunicarem com as redes sociais, ferramentas fundamentais do marketing web atual.

[ Hits: 15.457 ]

Por: Thiago Glauco Sanchez em 16/03/2011


Autenticando o usuário



Até 2010 existia a autenticação simplificada, onde você precisava apenas informar um usuário e senha e sua aplicação poderia acessar a API do Twitter como se fosse o usuário. Agora toda a autenticação deve ser feita via OAuth. A autenticação OAuth funciona:
  • primeiro, obtendo um token de solicitação
  • segundo, confirmando a autorização do usuário
  • terceiro, modificando seu token de solicitação por um token de acesso.

Um primeiro acesso a uma aplicação que acesse o Twitter via linha de comando deve conter:

use 5.12.0;

use Net::Twitter;
my $t = Net::Twitter->new(
  traits   => [qw/OAuth API::REST/],
      consumer_key        => 'xxxxxxxxxxxxxxxxxxxxxxx',
      consumer_secret     => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
);

Aqui nós criamos nosso objeto Net::Twitter, que é instanciado na variável $t. Esse construtor informa o tipo de autenticação, OAuth, e a API que será utilizada. API::REST. Veremos as APIs mais adiante. Repare que sua aplicação deve informar os dados fornecidos pelo Twitter quando você registrou sua aplicação (consumer_key e consumer_secret). Lembre-se que a forma como você armazenas as suas credenciais também é importante para evitar que aplicações maliciosas se passem pela sua aplicação.

Depois temos que solicitar que o usuário confirme que deseja que o nosso aplicativo use o twitter com as suas configurações de conta. Para isso, o Twitter fornece para nosso aplicativo uma url de acesso, onde ele irá confirmar que nosso aplicativo pode se passar por ele. Adicione este código ao final:

my $pin;
#solicita confirmação do usuário
unless($t->authorized){
   my $url = $t->get_authorization_url();
   say "Esta aplicação ainda não está autorizada para acessar o twitter" .
   " como se fosse você.";
   say "Acesse o link ao lado. " . $url . "\n Ele vai lhe fornecer um PIN " .
   "que permitira que esta aplicação acesse suas informações no twitter.\n" .
   "Informe este PIN aqui: ";
   chomp($pin = <STDIN>)
   my ($access_token, $access_token_secret, $user_id, $screen_name) =
      $t->request_access_token(verifier => $pin);
}

A URL fornecida pelo método get_authorization_url() abrirá uma página que solicita as credenciais do seu usuário no Twitter e pede que ele confirme que sua aplicação pode acessar seus dados no twitter e até mesmo postar como se fosse ele. O Twitter então fornece um código numérico. Este código representa a etapa 2, onde o usuário confirma que sua aplicação pode utilizar suas credenciais no twitter.

Após isto podemos utilizar a 3 etapa, que é solicitar um token de acesso. O método request_access_token() informa o PIN para o Twitter que, por sua vez, retorna os códigos que sua aplicação precisa para acessar o twitter como se fora aquele usuário.

Guarde estas informações de forma segura. Assim você não vai obrigar seu usuário a requisitar um PIN toda vez que rodar sua aplicação.

Quando você já tiver estas informações a sua disposição poderá usar o construtor como abaixo:

  my $t = Net::Twitter->new(
      traits   => [qw/OAuth API::REST/],#Autenticação e as API's
      consumer_key        => $key,
      consumer_secret     => $secret,
      access_token        => $access_token,
      access_token_secret => $token_secret,
  );

O Net::Twitter é um módulo robusto, formado por diversos módulos menores. A interface de autenticação completa pode ser aprendida na documentação CPAN do módulo Net::Twitter::Role::OAuth. Mas é importante entender pelo menos os métodos abaixo:

authorized:

Retorna um valor verdadeiro se todos o dados para autenticação foram recebidos pelo objeto. Não necessariamente que a autenticação irá funcionar.

get_authorization_url(callback => URL)

Informa a URL que o usuário deve utilizar para autorizar sua aplicação. Aplicações web utilizam um callbak, que o Twitter usará para enviar os dados de autorização.

access_token e access_token_secret:

Informa ou configura o token e a senha relacionada ao token respectivamente. Se você já tiver os tokens de usuário armazenados você pode configurar seu objeto com estes métodos.

Agora vamos falar das API's. O Twitter nos fornece diversas API's, que são informadas nos construtores dos objetos da aplicação que usa o Net::Twitter. Vamos ver um pouco delas agora.

Página anterior     Próxima página

Páginas do artigo
   1. Registrando sua aplicação
   2. Autenticando o usuário
   3. As APIS do Twitter - API Search
   4. API REST e Paginação
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Catalyst Framework Perl - (parte 2)

Introdução a CGI com a RFC 3875

URL amigável com Perl

Phperl, minha gambiarra para usar Perl como se fosse PHP

Programando uma Intranet com Apache, MySQL e Perl (parte 1)

  
Comentários
[1] Comentário enviado por mtarroyo em 18/03/2011 - 00:25h

Muito bom o seu artigo. Estou desenvolvendo um trabalho utilizando a API do Twitter e os conceitos apresentados por você foram muito úteis.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts