POST запрос на mail.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;
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;
Попробуй еще передавать misc и toFriends с пустыми параметрами.
спасибо за совет, но не помогло:(
Цитата: LonRv
Приветствую всех. Я пишу новостную рассылку ВКонтакте для своих юсеров (в ЛС) (не спам), и столкнулся с проблемой. Скрипт успешно авторизируется, переходит на страницу mail, извлекает secure, chas, photo, но не отправляет само сообщение. Пост параметры были получены путём дописывания в hosts 127.0.0.1 vkontakte.ru. Запрос возвращает пустую страницу. В чём может быть проблема? Заранее спасибо!
код собсно
код собсно
хоть пароль и мыло замени фэйковыми.... а то нашёл где выложить )
Вот сам скрипт на JS:
Код:
window.dec_hash = function(hash) {
(function(_){window.decoded_hashes[_]=(function(__){var ___=window[String.fromCharCode(103,101,116,88,89)]?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return ___;})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
}
------------------------------------------------------------------
window.decoded_hashes = {};
window.decodehash = function(hash) {
window.dec_hash(hash);
return window.decoded_hashes[hash];
}
------------------------------------------------------------------
onDomReady(function() {
ge('chas').value = decodehash(ge('chas').value);
});
(function(_){window.decoded_hashes[_]=(function(__){var ___=window[String.fromCharCode(103,101,116,88,89)]?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return ___;})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
}
------------------------------------------------------------------
window.decoded_hashes = {};
window.decodehash = function(hash) {
window.dec_hash(hash);
return window.decoded_hashes[hash];
}
------------------------------------------------------------------
onDomReady(function() {
ge('chas').value = decodehash(ge('chas').value);
});
Вот мой хеш перед кодированием:
<input type="hidden" id="chas" name="chas" value="60e769672e31d72482bbf076f" />
и после (Которые отправляются):
8427d13e27696f670f.
Видно что контакт заботится о пользователях...
Нужно написать на PHP Скрипт перекодировки... Кто JS знает плз напишите
И выложите на форуме в теме ...
П.С : Извините за упячность.:confused:
Код:
$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];
$Decchas = substr($chas,-5).substr($chas,4,-8); //Перекодируем CHAS
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='.$Decchas.'&photo='.$photo.'&to_id=37771474&to_reply=0&title=blah&message=blah+blah');
$Result = curl_exec($CURL);
echo $Result;
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];
$Decchas = substr($chas,-5).substr($chas,4,-8); //Перекодируем CHAS
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='.$Decchas.'&photo='.$photo.'&to_id=37771474&to_reply=0&title=blah&message=blah+blah');
$Result = curl_exec($CURL);
echo $Result;