POST запрос на mail.php ВКонтакте

Статус
В этой теме нельзя размещать новые ответы.

LonRv

Создатель
Регистрация
28 Апр 2009
Сообщения
19
Реакции
18
Приветствую всех. Я пишу новостную рассылку ВКонтакте для своих юсеров (в ЛС) (не спам), и столкнулся с проблемой. Скрипт успешно авторизируется, переходит на страницу mail, извлекает secure, chas, photo, но не отправляет само сообщение. Пост параметры были получены путём дописывания в hosts 127.0.0.1 vkontakte.ru. Запрос возвращает пустую страницу. В чём может быть проблема? Заранее спасибо!

код собсно
PHP:
$CURL = curl_init();

curl_setopt ($CURL, CURLOPT_URL, 'http://vkontakte.ru/login.php');
curl_setopt ($CURL, CURLOPT_FAILONERROR, 1);
curl_setopt ($CURL, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($CURL, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($CURL, CURLOPT_TIMEOUT, 20);
curl_setopt($CURL, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4');
curl_setopt ($CURL, CURLOPT_POST, 1); 
curl_setopt($CURL, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($CURL, CURLOPT_POSTFIELDS, 'email=avatar-forum@ua.fm&pass=Fi28rDGjf3138jf&expire=1'); 
$Result = curl_exec ($CURL);

curl_setopt($CURL, CURLOPT_URL, "http://vkontakte.ru/mail.php?act=write&to=37771474");
curl_setopt($CURL, CURLOPT_REFERER, "http://vkontakte.ru/index.php");
curl_setopt ($CURL, CURLOPT_TIMEOUT, 20);
curl_setopt($CURL, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4');
curl_setopt($CURL, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($CURL, CURLOPT_RETURNTRANSFER, 1);
$Result  = curl_exec($CURL);

preg_match_all ('/name\=\"secure\" value\=\"{1}(.*?)\"/', $Result, $Values_Array);
$secure = $Values_Array[1][0];

preg_match_all ('/name\=\"chas\" value\=\"{1}(.*?)\"/', $Result, $Values_Array);
$chas = $Values_Array[1][0];

preg_match_all ('/name\=\"photo\" value\=\"{1}(.*?)\"/', $Result, $Values_Array);
$photo = $Values_Array[1][0];

curl_setopt($CURL, CURLOPT_URL, "http://vkontakte.ru/mail.php");
curl_setopt ($CURL, CURLOPT_TIMEOUT, 20);
curl_setopt($CURL, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4');
curl_setopt ($CURL, CURLOPT_POST, 1); 
curl_setopt($CURL, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($CURL, CURLOPT_POSTFIELDS, 'act=sent&ajax=1&secure='.$secure.'&chas='.$chas.'&photo='.$photo.'&to_id=37771474&to_reply=0&title=blah&message=blah blah'); 

$Result  = curl_exec($CURL);
echo $Result;
 
попробуй использовать http analyzer сперва на контакте,
потом со своим скриптом и сам увидишь где разница.
там и пост параметры можешь видить в "сыром" виде.

а hosts дописывать не совсем реальная картина получится.
htttp analyzer можешь в варезе найти, есть и другие подобные проги.
 
Пост параметры были получены путём дописывания в hosts 127.0.0.1 vkontakte.ru. Запрос возвращает пустую страницу.

А что собственно на локалхосте делает принимающий скрипт mail.php?
 
> hosts 127.0.0.1 vkontakte.ru

Тоже интересно, как может скрипт соединяться с vkontakte.ru и передавать данные если домен на локаль настроен? Он и вернет пустую страницу... или я чего то не понял?
 
Рекомендую взять любой сниффер и сравнить запрос, отсылаемый браузером и твоим скриптом
 
Вот ссылка на сниффер мне он в многом помогает. Будут еше вопросы пиши, но мне все таки не понятно как скрипт работает при hosts 127.0.0.1 vkontakte.ru интересно бы услышать ответ автора.
 
LonRv, Контакт поменял способ авторизации. Он там 3ёх-ярусный.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху