Тема: PhoeniX VK
Показать сообщение отдельно
  #9  
Старый 25.02.2010, 20:59
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Indy-тяжеловесов решил не использовать...

Поскольку нечего делать...
Описание процесса входа (шаг за шагом):
1. Инициализация запроса входа - нажимаем "Вход" на главной странице.
Метод: POST
Куда: http://login.vk.com/?act=login
Что: "email=ВАШ_ЛОГИН&pass=ВАШ_ПАРОЛЬ&expire=&vk="
Получаем:
1. Cookies (их надо как-то сохранять...)
2. Форму, которая через JS автоматом отправляется (нам придётся её разобрать и отправить самим). Форма следующего содержания:
Код HTML:
<html> <head> <meta http-equiv='content-type' content='text/html; charset=windows-1251' /> </head> <body onload="document.getElementById('l').submit();"> <form id='l' method='post' action='http://vkontakte.ru/login.php'> <input type='hidden' name='op' id='op' value='slogin' /> <input type='hidden' name='redirect' id='redirect' value='1' /> <input type='hidden' name='expire' id='expire' value='0' /> <input type='hidden' name='to' id='to' value='' /> <input type='hidden' name='s' id='s' value='ТУТ_ДЛИННЫЙ_ХЭШ_ДАННЫХ' /> </form> </body> </html>
2. Отправляем форму по назначению.
Метод: POST
Куда: http://vkontakte.ru/login.php
Что: "op=slogin&redirect=1&expire=0&to=&s=ТУТ_ДЛИННЫЙ_Х ЭШ_ДАННЫХ"
Получаем:
А получаем мы редирект на /profile.php
Не забываем про Cookies... Их надо сохранить...
3. Финал. Идём на главную.
Метод: GET
Куда: http://vkontakte.ru/profile.php
Что: просто загружаем. Не забываем про Cookies.

Нам надо загрузить /profile.php, чтоб контакт подумал, что мы - тупой браузер. Кстати, нам опять надо разобрать и записать Cookies. А то что-то там такое....

И, да. После всего этого полученный profile.php можно сразу распарсить и получить счётчики.

Всё, мы вошли. С этими Cookies можно спокойно загружать любые страницы. Да, кстати, если нас на первом этапе выкидывает на http://vkontakte.ru/login.php?m=1&email=ВАШ_ЛОГИН, то мы уже НЕ вошли.

Тут нужно хорошо знать HTTP-заголовки, и уметь парсить HTML.

Кто хочет покопаться в процессе входа самостоятельно, посмотрите на исходник основной страницы vkontakte.ru, и после этого - лог переходов в любом локальном HTTP-proxy (том же Charles, например...)

Ждите, к утру отлажу версию 0.2, там уже есть счётчики, имя, аватар. Больше пока не успел...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj