![]() |
Авторизация вконтакте
Не подкинет кто нить пример авторизации с idhttp , а то по многому пробывал и чет не катит,желательно builder
Пробывал так Код HTML:
AnsiString get_sid; AnsiString Name = "mr@mail.ru"; AnsiString Password = "****"; AnsiString current_id;get_sid = web->Get("http://login.vk.com/?act=login&email=maxr@mail.ru&pass=34x&expire=0"); get_sid = get_sid.Delete(1,get_sid.Pos("id='s' value='")+13); get_sid = get_sid.Delete(get_sid.Pos("'"),get_sid.Length()); current_id = get_sid; Cook->AddCookie("remixchk=5","vkontakte.ru"); Cook->AddCookie("remixsid="+get_sid,"vkontakte.ru"); TStringStream *respon = new TStringStream(); TStringList *post= new TStringList(""); post->Add("u=2&op=slogin&redirect=1&expire=0&to=bWFpbC5waHA-&s="+current_id); web->Post("http://vkontakte.ru/login.php",post,respon); Memo1->Text = respon->DataString; delete respon,post; |
Писал как то)
Код:
procedure login; var html:string; s:string ; begin Form1.Label1.Caption:='Получам доступ в хранилище' ; html := form1.IdHTTP1.Get('http://vkontakte.ru/login.php?op=a_login_attempt'); if (html='vklogin') then begin Form1.Label1.Caption:='Обмениваемся информацией с хранилищем' ; html:=form1.IdHTTP1.Get('http://login.vk.com/?act=login&email=sss@ddd.ru&pass=pass&expire=&vk='); s:= RegexProc('value='''+'([\w]{15,80})',html); s:= RegexProc('[\w]{15,80}',s); Form1.IdHTTP1.HandleRedirects:=true; Form1.IdHTTP1.RedirectMaximum:=0; Form1.IdHTTP1.CookieManager:= form1.IdCookieManager1; Form1.IdHTTP1.AllowCookies:=true; Try html:= Form1.IdHTTP1.Get('http://vkontakte.ru/login.php?op=slogin&redirect=1&expire=0&to=&s='+s) ; Except ShowMessage('Неизвестная ошибка'); end; cook:= RegexProc('remixsid=([\w]{20,100})', form1.IdHTTP1.Response.RawHeaders.GetText ); cook:= RegexProc('([\w]{20,100})',cook); end else begin Form1.Label1.Caption:='Доступ невозможен, т.к. на ваш айпи повешенна капча!' ; end; end;Код:
Form1.IdCookieManager1.AddCookie('remixsid='+cook+'; path=/; ','vkontakte.ru'); Form1.IdCookieManager1.AddCookie('remixchk=5; path=/;','vkontakte.ru'); Form1.IdHTTP1.CookieManager:= Form1.IdCookieManager1; Form1.IdHTTP1.Request.UserAgent:='Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10'; request:=TStringList.Create; Form1.IdHTTP1.AllowCookies := true; //request.Add('midAuth=1'); //request.Add('user='+'jjj'); //request.Add('pswd='+'lll'); Form1.Label1.Caption:='Переходим на vkontakte.ru' ; try bufer:=Form1.IdHTTP1.Get('http://vkontakte.ru/'); except ShowMessage('Ошибка связи!'); |
Правда на делфи, но думаю поможет. А вообще инди глючная фигня.
|
Точно рабочий? А то щас переведу и опять облом))
|
Ну ты же хочешь наверно быть программистом или как минимум написать чтобы работало.
Вот на это нужен мозг. Пользуйся им и развивай. |
И опять этот вопрос...
http://forum.antichat.ru/showthread.php?t=151017 |
Я переделал с делфи на с и че т не фига, возвращает ошибку 302
|
RTFM по ответам сервера!
|
я когда то на delphi писал функцию))) может чем поможет)) тока надо исправить процедуру в idcookiamanager.pas
PHP код:
это код из мокго компонента для вк. нужно исправить код немного... |
Цитата:
|
| Время: 06:56 |