Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.03.2011, 10:23
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию Авторизация ВКонтакте

Доброго времени суток!

Я знаю, что этот вопрос поднимался не один и не десять раз, но мне нужна помощь. Нашел в интернете готовые исходные коды авторизации, но ни один из них не работает (логин и пароль вожу вверно)! Помогите разобраться. Вот код, который я немного подправил:

Код:
procedure TConverterForm.LoginPageButtonClick(Sender: TObject);
const
  ValueProp = 'value=''';
var
  QueryData: TStringList;
  PageProfile: String;
  ErrorRaised: Boolean;
  HashCode: String;
begin
  QueryData := TStringList.Create;
  try
    with QueryData do
    begin
      Add('email=логин');
      Add('pass=пароль');
      Add('expire=0');
      Add('vk=1');
    end;

    try
      HTTPQuery.HandleRedirects := False;
      PageProfile := HTTPQuery.Post('http://login.vk.com/?act=login', QueryData);
      ErrorRaised := False;
    except
      on E: Exception do
      begin
        ErrorRaised := True;
        PageProfile := 'Ошибка: ' + E.ClassName + ', ' + E.Message;
      end;
    end;

    if ErrorRaised then Exit;

    with QueryData do
    begin
      Clear;
      HashCode := Copy(PageProfile, Pos(ValueProp, PageProfile) + Length(ValueProp), 60);
      HashEdit.Text := HashCode;
      Add('s=' + HashCode);
      Add('op=slogin');
      Add('redirect=1');
      Add('expire=0');
      Add('to=');
    end;

    try
      HTTPQuery.HandleRedirects := True;
      PageProfile := HTTPQuery.Post('http://vkontakte.ru/login.php', QueryData);
      if Pos('logout', PageProfile) <> 0 then
        MessageBox(0, 'Авторизация на сайте ВКонтакте удалась!', 'Информация', MB_ICONINFORMATION)
      else
        MessageBox(0, 'Ошибка! Авторизация на сайте ВКонтакте неудалась!', 'Внимание', MB_ICONEXCLAMATION);
    except
      on E: Exception do
      begin
        ErrorRaised := True;
        PageProfile := 'Ошибка: ' + E.ClassName + ', ' + E.Message;
      end;
    end;
  finally
    QueryMemo.Text := PageProfile;
    QueryData.Free;
  end;
end;

HTTPQuery = TIdHTTP -
QueryMemo = TMemo - результат запроса
HashEdit = TEdit - HASH-код авторизации

Заранее спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter