Acessando o Twitter de 5 formas: protocolo HTTP, cURL, classe HttpRequest (PHP), função http_post_fields() do PHP ou PHP+libcurl
Nesse artigo demostrarei como acessar o twitter de 5 formas. Todas embasadas no envio de variáveis via método POST do protocolo HTTP.
Primeiro método (via método POST do protocolo HTTP)
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:
Uma amostra simples em HTTP dá a noção de como enviar essas informações para o Twitter:
Obs.:
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:
E capturar a chave dentro do código com a função:
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>
<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);