|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Авторизация ВКонтакте
Доброго времени суток!
Я знаю, что этот вопрос поднимался не один и не десять раз, но мне нужна помощь. Нашел в интернете готовые исходные коды авторизации, но ни один из них не работает (логин и пароль вожу вверно)! Помогите разобраться. Вот код, который я немного подправил: Код:
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-код авторизации Заранее спасибо! |