Просмотр полной версии : Стена вконтакте.
Deathdreams
09.03.2010, 18:07
всем привет.
При постинге на чью-либо стену к ID чудесным образом добавляется неведомая четырёхсимвольная соль (не зависит от длины ID).
Ну вот, вопрос, есть наработки по генерации этой соли ?
Или идеи ?
Deathdreams
09.03.2010, 18:26
Выплёвывает, что неверный ID
покажи что там за какашка, посмотрим
Deathdreams
09.03.2010, 18:31
Например (http://vkontakte.ru/id21).
Строка 872, солёный ID.
Спарси, в чём проблема ? Если генерируется js, то смотри исходники его.
Deathdreams
09.03.2010, 18:42
Спарси, в чём проблема ? Если генерируется js, то смотри исходники его.
А если у пользователя стена закрыта, как тогда ?
Генерируется не с помощью JS.
парсишь сурс, там она указана вместе с ID. И посылай на тот ID что спарсил.
А если у пользователя стена закрыта, как тогда ?
Помоему если закрыта стена, то ты не спарсишь параметр wall_hash без которого сообщение опять же не отправится...
попробуй рандомное число добавить
эта херня генится на пхп она статичная для конкретного акка.
парсь регэкспом её
Deathdreams
09.03.2010, 19:13
Помоему если закрыта стена, то ты не спарсишь параметр wall_hash без которого сообщение опять же не отправится...
Хеш парситься довольно-таки просто:
http://vkontakte.ru/wall.php?act=write&id=[СОЛЁНЫЙ_ID]
Deathdreams
09.03.2010, 19:14
попробуй рандомное число добавить
Если бы всё было так просто, я бы тему не стал создавать :)
эта херня генится на пхп она статичная для конкретного акка.
парсь регэкспом её
Читай выше, допустим страница закрыта.
Хеш парситься довольно-таки просто:
http://vkontakte.ru/wall.php?act=write&id=[СОЛЁНЫЙ_ID]
Я не про это тебе говорю... Ты видел какой запрос идёт на сервер при отправке сообщения на стену..?!
Там передаётся параметр (значение скрытго поля вормы) wall_hash вместе с сообщением и как ты говоришь солёным айди... Типа этого:
to_id=солёный айди
act=sent
wall_hash=aab9314dbf655a2188cebea4b207e1c2
message=Hi%2C%20man
и если ты не отправишь в запросе параметр wall_hash, то сообщение не улетит на стену... А это значение можно спарсить, помоему только в том случае, если открыт доступ к стене...
Deathdreams
09.03.2010, 23:02
Я не про это тебе говорю... Ты видел какой запрос идёт на сервер при отправке сообщения на стену..?!
Там передаётся параметр (значение скрытго поля вормы) wall_hash вместе с сообщением и как ты говоришь солёным айди... Типа этого:
to_id=солёный айди
act=sent
wall_hash=aab9314dbf655a2188cebea4b207e1c2
message=Hi%2C%20man
и если ты не отправишь в запросе параметр wall_hash, то сообщение не улетит на стену... А это значение можно спарсить, помоему только в том случае, если открыт доступ к стене...
я-то тебя понял, а ты по ссылочке перейди и глянь, hash можно спарсить в любом случае.
mazaxaka
22.04.2010, 20:19
парни подскажите как сейчас с помошью php отправлять сообщение на стенку. чтото у меня вообще не получается. парсю хеш пишет секюрити ерор . подставляю шес с запроса . ошибка
Deathdreams
22.04.2010, 20:35
В переменной $content содержимое страницы пользователя.
Показываю пример парсинга хеша , солёного id и постинга записи
preg_match( "#decodehash\('(.+)'\)#Uis", $content, $hash_tmp );
preg_match( '#name="to_id" value="([0-9]+)"#U', $content, $to_tmp );
$hash = strrev(substr($hash_tmp[1], -5).substr($hash_tmp[1], 4, -8));
потом идёт пост на http://vkontakte.ru/wall.php с данными:
"act=get10&wall_hash=".$hash."&wpage=100000&seed=".iconv('CP1251', 'UTF-8', $text)."&fpage=1&mid=".$to_tmp[1]."&n=3"
хеш просто так не спарсишь,
найти его можно только в таком виде:
window.wall_post_hash = decodehash('32_bit_hash');
сама же функция decodehash
window.decodehash = function(hash) {
dec_hash(hash);
return window.decoded_hashes[hash];
}
еще одна функция decoded_hashes
window.decoded_hashes = {};
var dec_hash = function(hash) {
(function(_){window.decoded_hashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
}
тот хэш который нужен для отправки на стену отличается (в этом и мысл функции decodehash)
запрос постом:
$post = Array(
'act'=>'get10',
'wall_hash'=>'hash', // тот который уже decodehash()
'wpage'=>'100000',
'seed'=>'ololo', // текст который слать
'fpage'=>'1',
'mid'=>'id', //парсится из <input type="hidden" id="to_id" name="to_id" value="[1-9]{8,}"/>
'n'=>'3'
);
$post = http_build_query($post);
Deathdreams
22.04.2010, 21:10
Failure, я помоему написал саму функцию отправки.
Даже функцию hash_decode на php.
mazaxaka
22.04.2010, 21:47
хм.. что то у меня не как не выходит отправить
$text = "ololo";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://login.vk.com/?act=login');
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1');
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20); // таймаут
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/index.php');
curl_setopt($ch, CURLOPT_COOKIE, 'remixlang=0; remixchk=5; remixsid=nonenone');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email='.($email).'&pass='.($pass).'&expire=&vk=');
$data = curl_exec($ch);
if(!$data) return('connection shit 3<br><br>');
curl_close($ch);
// Парсим хеш для отправки сообщения
preg_match( "#decodehash\('(.+)'\)#Uis", $data, $hash_tmp );
preg_match( '#name="to_id" value="([0-9]+)"#U', $data, $to_tmp );
$hash = strrev(substr($hash_tmp[1], -5).substr($hash_tmp[1], 4, -8));
// Отправляем
$url = "http://vkontakte.ru/wall.php?act=get10&wall_hash=".$hash."&wpage=100000&seed=".iconv('CP1251', 'UTF-8', $text)."&fpage=1&mid=".$to_tmp[1]."&n=3";
Deathdreams
22.04.2010, 22:44
mazaxaka
я же написал, получи страницу того, кому нужно отправить (id1, например)
lol
mazaxaka
22.04.2010, 22:54
страница получена при авторизаци и хранится в $datа
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot