![]() |
[Delphi] Авторизация ВКонтакте
Всем, привет) вот возник вопрос по авторизации вконтакте. Написал я пост запрос на авторизацию, вроде как) смотрю через снифер ->
Первый пост запрос: post = op=a_login_attempt url = http://vkontakte.ru/login.php он проходит вроде нормально..по сниферу смарел получает он vklogin, по-моему так и должно быть! Второй пост запрос: post = act=login post = success_url= post = fail_url= post = try_to_login=1 post = to= post = vk= post = email= + email post = pass= + pass url = http://login.vk.com/ этот вроде бы тоже не особо жалуется, и проходит нормально возвращает, что то типа этого: Код:
<html>теперь я их копирую, тоже вроде бы нормально копирую...без проблем всё.. Третий пост запрос: post = op=slogin post = redirect=1 post = expire=0 post = to= post = s='+Cookie(<- это скопированные куки) url = http://vkontakte.ru/login.php И вот с этого момента, снифер мне начинает возвращать страницу типа -> /login.php?u=1to=cHJvZmlsZS5waHA- Вот такое выдаёт снифер, скрин: http://i008.radikal.ru/0912/ec/81ec81e27407t.jpg Кто знает с чего он себя так начинает вести? :confused: |
cHJvZmlsZS5waHA = profile.php (base64)
|
Цитата:
|
Понял) это кодировка base64
cHJvZmlsZS5waHA это и есть profile.php ??? Верно?) Если да, тогда расскажи, что делать ? :( как с этим бороться!? |
Редирект на profile.php = удачная авторизация.
|
Цитата:
Код:
varил надо делать ручками редирект?! |
А вообще, немного иначе.
1 запрос op=a_login_attempt -> http://vk.com/login.php 2 запрос email= pass= expire= vk=1 -> http://login.vk.com/?act=login 3 запрос op=slogin redirect=1 expire=0 to= s={переменная s из ответа} -> http://vk.com/login.php При удачной авторизации, код ответа от сервера будет 302, и редирект на profile.php. handleredirects лучше остановить в false - проще отловить результат авторизации. |
я бы парсер сделал сразу с учетом того что гдето басе64 юзается, расшифровщик басе64 вообще понты весит.
но тут сценарий просто отсмотри, расшифруй все похожие редиректы и юзай. а может их вообще не надо декодить и в таком виде и льется. по снифферу удали запросы не потеме и посмотри сценарий. |
Цитата:
Код:
HTTP/1.1 302 Found(в снифере) хз че за трабла:( |
Код:
function test_log_vk (name, pass : string) : string; |
Ваш код выдаёт ошибку, такую же как и мою, не знаю как он у вас работает!?
Ошибка: Project Project1.exe raised exception class EIdHTTPProtocolException With Message 'HTTP/1.1 302 Found'. Process stopped. Use Step or Run continue |
Вот, пробуй этот код:
Код:
function loginvk(login, pass:string; HTTPClient:TIdHTTP):boolean; |
patcher
Какая у тебя Indy, у меня нету компанента IdMultiPartFormDataStream :( Код:
s:=copy(res[10], 51, length(res[10])-54);Вообще куки длиной 56 и строка не 10 а 11 в коде( |
Эмм....забыл:
Код:
uses IdMultipartFormData |
так у тя там ж в заголовке написано 302 Found... Location: profile.php
блин ща сам посмотрю) |
100% работает (2а запроса):
Код:
use |
Огромное спасибо eLWAux. Наконец, сделал авторизацию!
|
К сожалению сделал её только на pda.vkontakte.ru
как быть с vk.com и vkontakte.ru ??? :( |
спасибо ТС
|
Скачивай исходники программы Vkonpic на этом сайте:
_http://3po.ru/vkonpic/ Там есть рабочая процедура авторизации на vkontakte.ru. |
Цитата:
Http.Get('http://vkontakte.ru/blablabla&=1&login='+login+'&pass='+pass); надо будет глянуть :) хотя меня оч интересует очень пост запросы) в чем проблема не пойму ((( а еще меня оч интересует вот эта тема: http://forum.antichat.ru/thread165241.html а сейчас (sleep)25200000; :o :rolleyes: |
У меня на опере не сразу заходит сцуко, сначала вот на эту страницу про которую ТС говорил, приходится еще раз жать Обновить! Раньше такого не было, как обойти эти грабли?
P.S. Opera 9.50.10063 build |
Цитата:
http://vkontakte.ru/login.php?u=1to=cHJvZmlsZS5waHA- что то типо того?) потом жмёшь обновить и заходит вконтакт?)! :confused: |
поставил оперу 10, теперь все норм.
|
Установил Delphi 2010. Функция авторизации от Пухового заработала :)
Просто мистика, на Delphi 7 зависала :( Спасибо всем за помощь) |
| Время: 04:40 |