Delphi Studio > Примеры на Delphi Сеть Интернет > Авторизация вконтакте на IdHTTP(Indy)

Авторизация вконтакте на IdHTTP(Indy)


29-03-2011, 14:32. Разместил: FeniXElite
Авторизация вконтакте на IdHTTP(Indy)

Сегодня я покажу как авторизоваться на сайте Vkontakte.ru с помощью компонента IdHTTP

1. Киньте на форму кнопку и IdHTTP с вкладки Indy Clients. У IdHTTP, handleredirects := True;
2. В обработчик события кнопки добавляем след. код :

procedure TForm1.Button1Click(Sender: TObject);
var
  PostData : TStringList;
  ResponseData : TStringList;
  hash : string;
begin
  PostData := TStringList.Create;
  ResponseData := TStringList.Create;

  PostData.Add('op=a_login_attempt');
  ResponseData.Text := IdHTTP1.Post('http://vkontakte.ru/login.php',PostData);
  PostData.Clear;


  PostData.Add('email=' +[b]ЕМЕЙЛ[/b]);
  PostData.Add('pass=' + [b]ПАРОЛЬ[/b]);
  PostData.Add('vk=1');
  ResponseData.Text := IdHTTP1.Post('http://login.vk.com/?act=login',PostData);

  if Pos('''s''',ResponseData.Text)<>0 then
    begin
      hash := ResponseData.Text;
      Delete(hash,1,Pos('value',hash)+6);
      Delete(hash,Pos('''',hash),Length(hash));
    end
  else
    begin
      {Неверный логин/пасс }
      Exit;
    end;

  PostData.Clear;
  PostData.Add('s='+hash);
  PostData.Add('op=slogin');
  PostData.Add('redirect=1');
  PostData.Add('expire=0');
  ResponseData.Text := IdHTTP1.Post('http://vkontakte.ru/login.php',PostData);

  If Pos('logout',ResponseData.Text) <> 0 then
    MessageBox(Handle, 'Авторизовались :)' , 'Ура!', MB_OK+MB_ICONINFORMATION)
  else
    MessageBox(Handle, 'Не авторизовались :(' , 'Не ура!', MB_OK+MB_IConerror)

end;


В общем то и все :) Успехов wink

Вернуться назад
rss