1. Главная
  2. /
  3. Delphi
  4. /
  5. Delphi авторизация вКонтакте

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;

А теперь внимание, как вы видите, у меня не стоит проверка на появление капчи при логине, скажем так, это есть домашнее задание!)))

Поделиться ссылкой на статью

9 комментариев. Оставить новый

  • Капча у Вас возбуждающая )
    Хороший сайт, все нравится.

    Ответить
  • великий инквизитор
    08.08.2012 14:41

    На костер поливающих парашей!

    Ответить
  • username
    08.08.2012 14:38

    А то юзать чужой код каждый может, а пораскинуть остатками мозгов, видимо уже нет времени!))))))

    Ответить
  • username
    08.08.2012 14:37

    Ну начем с того, что пост еще с того года, и вполне возможно изменили принцип авторизации, хотя тотже код успешно юзаю, но только в пхп.
    КТО МЕШАЕТ САМОМУ НАПИСАТЬ НЕ ПАРАШУ И ПОДЕЛИТЬСЯ С ЛЮДЬМИ?
    Тем более старт я дал, стоит только немного допилить тот код, что есть в статье.

    Ответить
  • Вася
    08.08.2012 11:00

    Параша все это, какие бы данные в полях не вводил на все будет писать ‘Авторизовались’, даже если пасс или мыло неверные

    Ответить
  • username
    09.11.2011 18:48

    у меня тут даже функция описана вытаскивающая куки, все что остается это присвоить их где надо и шариться по сайту

    Ответить
  • username
    09.11.2011 17:26

    ну обычно после авторизации необходимо вытягивать кукисы, и с ними шариться по сайту на котором авторизовались, иначе без кук вы просто неавторизованный пользователь и дальше страницы авторизации никуда не проползете ))))))

    Ответить
  • DragonSET
    09.11.2011 17:13

    Уважаемый Администратор, попробовал Ваш код — конечно, выдает «Авторизовались», но.. При обычном GET’е http://vkontakte.ru — выдает, что, мол, авторизовывайтесь, молодой человек…

    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Категории

Меню