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

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 1)

Executando os principais frameworks Perl no cPanel com CGI

URL amigável com Perl

Catalyst Framework Perl - Parte III

Phperl, minha gambiarra para usar Perl como se fosse PHP

  
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