Delphi авторизация вКонтакте
В общем задумался я на досуге, что, было бы неплохо научиться постить с помощью делфей в одну из известнейших социальных сетей вКонтакте, задумался, да и решил попробовать свои силы ))) Самое интересное, что такой простой авторизации на мой взгляд еще не было, но не будем о лирике...
Кидаем на форму два эдита, и кнопку, которой дадим громкое название Login. Получим уродца как на скрине:
Далее в uses дописываем IdHTTP
Теперь в обработчике событий нажатия кнопки Login пишем следующее:
procedure TForm1.btnLoginClick(Sender: TObject); var http: TIdHTTP; Data: TStringList; Coocies: string; begin HTTP:= TIdHTTP.Create(Self); HTTP.HandleRedirects:= True; HTTP.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1'; try HTTP.Get('http://login.vk.com/?act=login&q=1&al_frame=1&from_host=vkontakte.ru&email='+Edit1.Text+'&pass='+Edit2.Text); except end; Cookies:= SetCookies(HTTP.Response.RawHeaders.Text); if Pos('remix', Cookies)<>0 then ShowMessage('Авторизовались'); HTTP.Free; end;
SetCookies — самописная функция выгребающая кукисы, т.к. кукиманагеру инди я не доверяю, в одном проекте уж больно он мне подосрал))))
function SetCookies(Raw: string): string; var PosCook: Integer; Cook: string; begin Cook:= ''; Cook:= 'Cookie: '; PosCook:= Pos('Set-Cookie:', Raw); while PosCook<>0 do begin Delete(Raw, 1, PosCook-1); Cook:= Cook + Copy(Raw, 12, Pos(';', Raw)-11); Delete(Raw, 1, Pos(';', Raw)); PosCook:= Pos('Set-Cookie:', Raw); end; Result:= Cook+'remixlang=0;'; end;
А теперь внимание, как вы видите, у меня не стоит проверка на появление капчи при логине, скажем так, это есть домашнее задание!)))
Поделись с друзьями:
Рубрики: Delphi, Programming · Теги: delphi, idhttp, авторизация, вКонтакте
16.08.2014 в 13:28
· Ссылка
Капча у Вас возбуждающая)
Хороший сайт, все нравится.
16.08.2014 в 14:39
· Ссылка
Спасибо, стараемся 🙂
08.08.2012 в 14:41
· Ссылка
На костер поливающих парашей!
08.08.2012 в 14:38
· Ссылка
А то юзать чужой код каждый может, а пораскинуть остатками мозгов, видимо уже нет времени!))))))
08.08.2012 в 14:37
· Ссылка
Ну начем с того, что пост еще с того года, и вполне возможно изменили принцип авторизации, хотя тотже код успешно юзаю, но только в пхп.
КТО МЕШАЕТ САМОМУ НАПИСАТЬ НЕ ПАРАШУ И ПОДЕЛИТЬСЯ С ЛЮДЬМИ?
Тем более старт я дал, стоит только немного допилить тот код, что есть в статье.
08.08.2012 в 11:00
· Ссылка
Параша все это, какие бы данные в полях не вводил на все будет писать 'Авторизовались', даже если пасс или мыло неверные
09.11.2011 в 18:48
· Ссылка
у меня тут даже функция описана вытаскивающая куки, все что остается это присвоить их где надо и шариться по сайту
09.11.2011 в 17:26
· Ссылка
ну обычно после авторизации необходимо вытягивать кукисы, и с ними шариться по сайту на котором авторизовались, иначе без кук вы просто неавторизованный пользователь и дальше страницы авторизации никуда не проползете))))))
09.11.2011 в 17:13
· Ссылка
Уважаемый Администратор, попробовал Ваш код — конечно, выдает «Авторизовались», но.. При обычном GET'еvkontakte.ru — выдает, что, мол, авторизовывайтесь, молодой человек...