Obtendo o cookie usado pelo orkut via Google Authentication API
Publicado em 29/01/2008 por Gilson Maluko |
Para obter dados do famoso orkut, necessitá-se de um cookie chamado orkut_state.
Abaixo mostrarei como obter o valor do cookie e como usar esse cookie em aplicações.
Índice
-
Fazendo a requisição do cookie
- Enviando usuário & senha
- Recebendo o valor auth
- Fazendo o pedido
- Recebendo o valor do cookie
Recebendo o cookie orkut_state
Exemplos
Fazendo a requisição do cookie
Nesta etapa enviaremos usuário & senha para obtermos o valor auth usado na sessão seguinte.
Enviando usuário & senha
Use o pedido abaixo para receber o valor do auth usado na segunda parte.
GET https://www.google.com/accounts/ClientLogin?Email=Seu-Email-Aqui&Passwd=Sua-Senha-Aqui&service=orkut HTTP/1.1 CRLF CRLF
É importante lembrar que se deve colocar “https://www.google.com” no pedido, caso não seja usado uma conexão segura, do contrário pode-se só usar ‘/accounts/Client…’
Não irei fazer ou falar sobre o controle de erro, para saber sobre os possíveis erros que pode acontecer leia isto.
Recebendo o valor auth
Caso o usuário e a senha estejam correto, e acima de tudo o servidor esteja em funcionamento, ele te mandará algo assim:
HTTP/1.1 200 OK Content-Type: text/plain Cache-control: no-cache Pragma: no-cache Content-Length: 626 Date: Thu, 08 Nov 2007 05:13:58 GMT Server: GFE/1.3 Connection: Close SID=DQAAAIkAAA... LSID=DQAAAIsAAA... Auth=DQAAAIwAAA…
Pronto, o nosso valor auth está na mão.
Recebendo o cookie orkut_state
Agora que já temos o valor do auth, o que só nos resta a fazer é o pedido do cookie ao orkut.
Fazendo o pedido
Use o pedido abaixo para receber o cookie.
GET /RedirLogin.aspx?auth=Valor-do-Auth-Aqui HTTP/1.1 CRLF CRLF
Recebendo o valor do cookie
Caso o servidor esteja em funcionamento e o valor do auth esteja autêntico, o servidor mandará algo assim:
HTTP/1.x 302 Moved Temporarily Cache-Control: no-cache, must-revalidate, no-cache="Set-Cookie", private Expires: Fri, 01 Jan 1990 00:00:00 GMT Pragma: no-cache Set-Cookie: orkut_state=ORKUTPREF=ID=12268830240277865173:…; Domain=www.orkut.com; Path=/; HttpOnly Set-Cookie: orkut_state=; Domain=.orkut.com; Expires=Wed, 07-Nov-07 04:42:40 GMT; Path=/; HttpOnly Content-Type: text/html; charset=UTF-8 Location: http://www.orkut.com/ Content-Encoding: gzip Content-Length: 171 Server: GFE/1.3 Date: Thu, 08 Nov 2007 04:42:40 GMT
Pronto agora é só pegar o valor do cookie orkut_state e usar em suas aplicações.
Exemplos
Fiz alguns exemplos para o melhor entendimento dos processos.
PHP (Download)
*Para o funcionamento correto, deve-se ter os streams registrados e o módulo de socket habilitado.
<?php
header("Content-Type: text/plain");
$error = NULL;
$user = 'usuario';
$pass = 'senha';
// PHP4 - PHP5
function sock($host,$port) {
global $error;
if (function_exists('stream_socket_client')) { $handle = @stream_socket_client($host.':'.$port,&$e0,&$e1); }
elseif (function_exists('fsockopen')) { $handle = @fsockopen($host,$port,&$e0,&$e1); }
if (!$handle || $e0 || $e1) { $error[0]= $e0; $error[1] = $e1; return false; }
return $handle;
}
if ( false === ($handle = sock('www.google.com',80)) ) { print 'Error: '.$error[0].'# '.$error[1]."\n"; exit; }
print "Enviando Usuario e Senha…\n";
@fwrite($handle, "GET https://www.google.com/accounts/ClientLogin?service=orkut&Email=".urlencode($user)."&Passwd=".urlencode($pass)." HTTP/1.1\r\n\r\n\r\n");
print "Enviado Usuario e Senha.\n";
print "Recebendo valor do auth…\n";
while (!@feof($handle)) {
if ( @preg_match('/^auth=([^\n\r]+)/i', @fgets($handle), $auth) ) {
fclose($handle);
unset($handle);
break;
}
}
if (!$auth[1]) { print "Error ao pegar o valor 'auth'\n"; exit; }
print "Valor 'auth' recebido.\n";
if ( false === ($handle = sock('www.orkut.com',80)) ) { print 'Error: '.$error[0].'# '.$error[1]."\n"; exit; }
print "Enviando pedido do cookie…\n";
@fwrite($handle, "GET /RedirLogin.aspx?auth=".$auth[1]." HTTP/1.1\r\nHost: www.orkut.com\r\n\r\n");
print "Pedido enviado.\n";
print "Recebendo valor do cookie…\n";
while (!@feof($handle)) {
if ( @preg_match('/^set-cookie:\sorkut_state=([^;]+)/i', @fgets($handle), $cookie) ) {
fclose($handle);
unset($handle);
break;
}
}
if (!$cookie[1]) { print "Error ao pegar o valor do cookie"; exit; }
print "Cookie pegado com sucesso. veja o seu valor: ".$cookie[1]."\n\n";
# Pegando a sorte de hoje
print "Solicitanto sorte de hoje…\n";
if ( false === ($handle = sock('www.orkut.com',80)) ) { print 'Error: '.$error[0].'# '.$error[1]."\n"; exit; }
print "Enviando pedido…\n";
@fwrite($handle, "GET http://www.orkut.com/Home.aspx HTTP/1.1\r\nCookie: orkut_state=".$cookie[1]."\r\nAccept-Charset: ISO-8859-1\r\n\r\n");
print "Pedido enviado.\n";
print "Recebendo sorte de hoje…\n";
while (!@feof($handle)) {
if ( @preg_match('/<b>Sorte\sde\shoje\s?:\s?<\/b>([^<]+)<br>/i', @fgets($handle), $sorte) ) {
fclose($handle);
unset($handle);
break;
}
}
if (!$sorte[1]) { print "Error ao pegar sua sorte de hoje"; exit; }
print "Sua sorte de hoje: '".str_replace(" ","",$sorte[1])."'\n";
?>
mIRCscript (Download)
;
; Sintaxe
; /GetSorte
;
; Descrio
; Retorna a "sorte de hoje", primeiro deve-se usar o "/getOrkutCookie"
;
alias GetSorte {
if (!%Orkut.Cookie) {
echo -s * Cookie no encontrado, primeiro use //getOrkutCookie usurio senha
return
}
unset %Orkut.Sorte
sockopen GetSorte www.orkut.com 80
}
on *:sockopen:GetSorte:{
var %sn = $sockname, %w = sockwrite -tn %sn
SocketError $sockerr $event %sn
%w GET /Home.aspx HTTP/1.1
%w Host: www.orkut.com
%w Accept-Charset: ISO-8859-1
%w Cookie: orkut_state= $+ %Orkut.Cookie
%w Connection: close
%w
}
on *:sockread:GetSorte:{
var %sn = $sockname, %m = $sock(%sn).mark
SocketError $sockerr $event %sn
sockread %a
while ($sockbr) {
if ( $regex(%a,/<b>Sorte\sde\shoje\s?:\s?<\/b>([^<]+)<br>/i) ) {
set %Orkut.Sorte $remove( $regml(1), )
echo -s * Sua sorte de hoje: %Orkut.Sorte
sockclose %sn
halt
}
;Debug
;echo -s * %a
sockread %a
}
}
on *:sockclose:GetSorte:{
if (!%Orkut.Sorte) {
echo -s * Erro ao pegar a sua sorte de hoje. =\
}
}
;
; Sintaxe
; /getOrkutCookie usurio senha
;
; Descrio
; Obtm o valor do cookie orkut_state
;
alias getOrkutCookie {
if (!$2) { echo -s * Error: sintaxe correta /getOrkutCookie $chr(2) $+ usuario senha | return }
if ($sock(Orkut.GET)) { echo -s * Wait: Voce ja estar realizando um processo, por favor aguarde… | return }
unset %Orkut.*
set %Orkut.User $replace($1,@,% $+ 40)
set %Orkut.Pass $2
Orkut.Open
}
alias Orkut.Open {
var %n = Orkut.GET
if ($sock(%n)) { sockclose %n }
sockopen %n $+(www.,$iif($1,orkut,google),.com) 80
sockmark %n $1
}
on *:sockopen:Orkut.GET:{
var %sn = $sockname, %m = $sock(%sn).mark, %w = sockwrite -tn %sn
SocketError $sockerr $event %sn
if (%m) { %w GET /RedirLogin.aspx?auth= $+ %Orkut.Auth HTTP/1.1 | %w Host: www.orkut.com }
else { %w GET https://www.google.com/accounts/ClientLogin?service=orkut&Email= $+ %Orkut.User $+ &Passwd= $+ %Orkut.Pass HTTP/1.1 }
%w Connection: close
%w
if (%m) {
echo -s * Recebendo o cookie…
}
else { echo -s * Enviando Usuario & Senha… }
}
on *:sockread:Orkut.GET:{
var %sn = $sockname, %m = $sock(%sn).mark
SocketError $sockerr $event %sn
sockread %a
while ($sockbr) {
if (%m && $regex(%a,/^set-cookie:\sorkut_state=([^;]+)/i)) {
unset %Orkut.*
set %Orkut.Cookie $regml(1)
echo -s * Cookie Pegado com sucesso. digite ‘//echo % $+ Orkut.Cookie’ para ver seu valor.
}
elseif ( $regex(%a,/^auth=([^\r\n]+)/i) && !%m && $regml(1)) { set %Orkut.Auth $regml(1) | Orkut.Open 1 }
;Debug
;echo -s * %a
sockread %a
}
{
goto eof
:error
/reseterror
:eof
}
}
on *:sockclose:Orkut.GET:{
var %m = $sock(%sn).mark
if (%m && !%Orkut.Cookie) {
echo -s * Ocorreu algum erro ao pegar o valor do cookie orkut_state
}
elseif (!%m && !%Orkut.auth && !%Orkut.Cookie) {
echo -s * Usurio/Senha invlido, ou erro no servidor.
}
}
alias SocketError {
;SocketError $sockerr $event %sn
if ($1) {
echo -s +ERR ( $+ $2 $+ )[ $+ $1 $+ ] em $3
return haltdef
}
}
Espero ter ajudado muitos.
Erros? Dúvidas? Sugestões? Deixa no comentário!
março 16th, 2008 à 12:41
como faço pra exclui o cookei
março 16th, 2008 à 12:42
como fazer para exclui o cookei???
março 16th, 2008 à 14:03
nao consigo entrar no meu orkut ja fazem dois dias, oque tenho que fazer
março 16th, 2008 à 14:05
ja fazem dois dias que tento entrar no meu orkut e nao consigo, oque tenho que fazer….
março 18th, 2008 à 10:08
como faço para excluir o cookie?
por que nao consigo entar no meu orkut ha de 4 dias, o que faço?
março 24th, 2008 à 13:32
Toda vez que tento entrar no meu orkut… ao colocar usuario e senha, aparece uma mensagem de cookie desativado, mas pesquisei e percebi que não tem cookie nehum no meu pc, acho que deletei sem querer!!! Como faço pra adquirir esse cookies nevamente???? Por favor me ajudem!
abril 5th, 2008 à 16:25
ja fazem dois dias que tento entrar no meu orkut e nao consigo, o que tenho que fazer….
abril 6th, 2008 à 01:01
Ja fazem 5 dias que tento entrar no meu orkut e ñ consigo, o que tenho que fazer?
abril 7th, 2008 à 16:15
não consigo entrar no orkut,e também não consigo acessar meu gmail,por que? eu preciso com urgencia.
abril 11th, 2008 à 21:52
não estou conseguindo entrar no meu orkut, aparece uma msg de erro como posso solucionar esse problema?
abril 15th, 2008 à 19:00
Pessoal, milhões de desculpas por demorar a responder.
Então vamos ao que importa:
Diogo: O cookie auto se deleta ao termino do script.
Patricia Gonçalves: Qual erro que ocorre quando tenta entrar?
Flávia Longo: Esse script não interfere em nada, ao menos que tenha feito alguns request’s repitidamente em pouco tempo.
Daniela: Veja as configurações do seu navegador e tente logar denovo no orkut normalmente. apos fazer isso entre em contato novamente. ^^
Leide, Veronice, Gabriela, Rosiane: Tente ser mais detalhista, tente falar sobre os possiveis erros e mensagens que aparece quando tenta entrar no orkut.
junho 24th, 2008 à 19:37
Oi!
Estou com um serio problema!nao consigo assessar meu orkut! empre que tento me logar aparece uma menssagem de erro disendo que meu kookie esta desativado! ja nao sei o que fasso! ja mudei as configurassoes do meu navegador e nada da geito!sempre aquela menssagem sinistra aparece me atormentando!pesso ajuda urgente ja que estou a mais de duas semanas sem entrar.
grato!
agosto 28th, 2008 à 00:04
Vlw Rapz!
Visitem: http://www.galerarox.net