Em meu primeiro artigo mostrarei como construir algumas interfaces alternativas para acesso ao
Twitter.
Primeiro temos que esclarecer que para a autenticação no Twitter pela internet é necessário o envio de algumas variáveis pelo método POST do protocolo HTTP para a página do Twitter, que deve receber essas variáveis em
https://twitter.com/sessions.
As variáveis requeridas são:
- authenticity_token
- return_to_ssl
- session[username_or_email]
- session[password]
- q
Uma amostra simples em HTTP dá a noção de como enviar essas informações para o Twitter:
<html>
<head>
</head>
<body>
<form name="form1" method="method" action="https://twitter.com/sessions">
<input type="hidden" name="authenticity_token" value="d5b3fee21b5d30551969d15b7b1667af8874785a" />
<input type="hidden" name="return_to_ssl" value="true" />
<input type="hidden" name="session[username_or_email]" value="SEU_USUARIO_DO_TWITTER" />
<input type="hidden" name="session[password]" value="SUA_SENHA_DO_TWITTER" />
<input type="hidden" name="q" value="" />
</form>
</body>
</html>
Obs.:
- As variáveis e o campo action foram descobertos com o uso aplicativo que captura os headers http que transitam na rede, no caso utilizei uma extensão do Mozilla Firefox intitulada live http header.
- A variável "q" deve ser passada com valor nulo (Talvez nem precise ser passada. Não testei).
- O valor da variável "authenticity_token" pode ser fixo como no exemplo, desde que não haja várias tentativas simultâneas de login. Caso afirmativo, o twitter retornará uma daquelas mensagem gráficas para confirmação manual.
Pode se fazer um script PHP que leia o valor dessa variável no código fonte da página do Twitter. Sugestão: utilizar a função:
$html = htmlentities(file("http://www.twitter.com"));
E capturar a chave dentro do código com a função:
preg_match $padrao = '/authenticity\_token\" value=\"(.*)\"/';
preg_match($padrao, $html, $matches, PREG_OFFSET_CAPTURE, 3); print_r($matches);