Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2012, 17:26   #1
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию Авторизация в VK :D

Настала и моя очередь спросить) Вроде делаю все по феншую.
Просниферил отправляемые данные. Отправляю те же. Но не пускает
Код:
IdHTTP.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0';
IdHTTP.Request.Referer:='http://vk.com/';


html:=IdHTTP.Get('http://vk.com/');
data.Add('act=login');
data.Add('role=al_frame');
data.Add('expire=');
data.Add('captcha_sid=');
data.Add('captcha_key=');
data.Add('_origin=http://vk.com');
data.Add('ip_h='+IsolateText_Mini(html,'ip_h: ''',''''));
data.Add('email='+Trim ( Copy(Form1.Memo1.Lines.Strings[0],1,Pos(';',Form1.Memo1.Lines.Strings[0])-1) ));
data.Add('pass='+Trim( Copy(Form1.Memo1.Lines.Strings[0],Pos(';',Form1.Memo1.Lines.Strings[0])+1,Length(Form1.Memo1.Lines.Strings[0]))));
IdHTTP.Post('https://login.vk.com/?act=login',data);
Кто что посоветует? Вариант с авторизацией через GET отпадает, т.к логин номер телефона
bakanaev вне форума Ответить с цитированием
Старый 03.12.2012, 18:10   #2
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию

http://www.programmersclub.ru/Авторизация-В-контакте/
cashmail вне форума Ответить с цитированием
Старый 03.12.2012, 18:28   #3
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

cashmail, этот вариант уже давно не работает..
Код:
type status_auth=(onlogin,onfailed,oncaptcha);
var
  data:tstringlist;
  PageProfile,sid:string;
  i: Integer;
  status:status_auth;
  s, c, remixchk, remixsid: string;
  label
  go;
begin
go:
http.CookieManager.CookieCollection.Clear;
if http_<>nil then
http_.CookieManager.CookieCollection.Clear;
  HTTP.AllowCookies:=true;
  HTTP.HandleRedirects:=false;
  data:=tstringlist.create;
data.Add('act=login');
data.Add('q=1');
data.Add('al_frame=1');
data.Add('expire=');
data.Add('captcha_sid='+captcha_sid);
data.Add('captcha_key='+captcha_key);
data.Add('from_host=vkontakte.ru');
data.Add('email='+l);                                                      
data.Add('pass='+p);
captcha_sid:='';
captcha_key :='';
try  
PageProfile:=HTTP.Post('http://login.vk.com/?act=login', data);
except                                  
PageProfile:=http.Get(http.Response.Location);     
end;                      
if pos('onLoginDone',PageProfile)<>0 then
status:=onlogin
else if pos('onLoginFailed',PageProfile)<>0 then
status:=onfailed
else
status:=oncaptcha;
case status of
onlogin:
begin
c := http.Response.RawHeaders.Text;
while (pos('sid=deleted; expires=',c)>0) do
delete(c,pos('sid=deleted; expires=',c),length('sid=deleted; expires=')+length('GMT; path=/; domain=.vk.com'));
i := Pos('remixsid', c) + 9;
remixsid := Copy(c, i, length(c));
remixsid := Copy(remixsid, 1, pos(';',remixsid)-1);
http.Request.CustomHeaders.Text := 'Cookie: remixsid='+remixsid;
http.CookieManager.AddCookie('remixchk='+remixchk+'; remixsid='+remixsid,'http://vk.com');
result.status:=true;
result.id:=pars('(''/',''')',PageProfile);
PageProfile:=http.Get('http://vk.com/'+result.id);
result.name:=pars('<title>','</title>',PageProfile);
info:=result;
end;
onfailed:result.status:=false;
oncaptcha:
begin
showmessage('Капча');
Goto go;
end;

end;
end;
Кольша вне форума Ответить с цитированием
Старый 04.12.2012, 11:16   #4
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Кольша, спасибо. Но все же я сделал по другому) Через авторизацию на kp.ru
Код:
IdHTTP:=TIdHTTP.Create;
idSSLIOHandlerSocketOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create;
IdCookieManager:=TIdCookieManager.Create;
IdHTTP.CookieManager:= IdCookieManager;
IdHTTP.AllowCookies:=true;
IdHTTP.HandleRedirects:=true;
IdHTTP.IOHandler:=IdSSLIOHandlerSocketOpenSSL;

data:=TStringList.Create;
IdHTTP.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0';
IdHTTP.Request.Referer:='http://vk.com/';
html:=IdHTTP.Get('http://oauth.vk.com/authorize?response_type=code&scope=12&client_id=2852163&redirect_uri=http%3A%2F%2Fmy.kp.ru%2Flogin%2Fvkontakte.do%3FreturnUrl%3Dhttp%253A%252F%252Fwww.kp.ru%252F%26remember%3D1%26fmt%3Dwebf%26display%3Dpopup');
data.Add('ip_h=e9fd08380b7930d86b');
data.Add('_origin=http://oauth.vk.com');
data.Add('to='+IsolateText_Mini(html,'name="to" value="','"'));
data.Add('expire=0');
data.Add('captcha_key=');
data.Add('email='+Trim ( Copy(Form1.Memo1.Lines.Strings[0],1,Pos(';',Form1.Memo1.Lines.Strings[0])-1) ));
data.Add('pass='+Trim( Copy(Form1.Memo1.Lines.Strings[0],Pos(';',Form1.Memo1.Lines.Strings[0])+1,Length(Form1.Memo1.Lines.Strings[0]))));
IdHTTP.Post('https://login.vk.com/?act=login&soft=1',data);
bakanaev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
авторизация shked02 PHP 7 27.01.2012 12:41
Авторизация trad C++ Builder 3 13.01.2011 01:27
Обычная авторизация или авторизация на уровне браузера? calugin Безопасность, Шифрование 0 13.01.2011 00:34
авторизация. DeDoK Работа с сетью в Delphi 3 02.07.2010 17:00
Авторизация doniyor JavaScript, Ajax 1 07.11.2009 21:13