September 5th, 2010

[vkontakte]

Для тех, кто интересуется парсерами и прочей автоматикой.
Как логиниться в контакте.
1) Запостить op=a_login_attempt на http://vkontakte.ru/login.php
2) Запостить act=login&try_to_login=1&email={0}&pass={1} на http://login.vk.com ({0} заменить на заэнкоденное мыло, {1} - на заэнкоденный пасс).
3) В ответе выловить куку "l" (эль строчная) и узнать из неё юзер айди.
4) Распарсить форму из HTML ответа и перепостить все поля на http://vkontakte.ru/login.php
5) Если ответ матчится на <a href=\"\/id{0}\/?\"> (где {0} - юзер айди из пункта 3), то мы залогинились.
Дальше дело техники - вьюсорс (фаербаг, драгонфлай или чё ещё) и поехали писать парсер.
Все куки шарить между запросами.
Если в дотнете <4.0 ничего не получается - это позорная бага CookieContainer-а, про неё можно почитать тут - есть воркэраунд, а в четвертом фреймворке уже починили.
Если в другой среде ничего не получается - либо среда говёная, либо руки кривые, либо вконтакте сделали свою кроссдоменную авторизацию ещё хитрожопее, а я ничего не знаю.