ZiX
Коддинг, Парсинг
- Регистрация
- 9 Июл 2011
- Сообщения
- 1.378
- Реакции
- 707
- Автор темы
- #1
Нашел такой вот код, для загрузки фото вконтакт. Других скриптом не нашел, остальные что в паблике работают через апи. Хотелось бы как нибудь без апи обойтись. Загружать не хочет, хотя на первый взгляд все нормально. Может у контакта поменялся алгоритм загрузки фото?
Пишет <!--11118<!><!>0<!>6363<!>8<!>Ошибка доступа<!><!>
Пробовал запрос делать вручную, что-то типа этого:
Для просмотра ссылки Войдиили Зарегистрируйся
Не загружает и в ответ пишет {"code":"0"}
В чем может быть проблема ?Если есть готовое решение загрузки фото вконтакт, не жмитесь, выкладывайте.
PHP:
<?php
//[#]====[Настройки]====[#]\\
$email = 'xx@xxx.ru'; //Емейл или логин
$pass = 'qwerty'; //Пароль
$id = 'id0000000'; //id получателя
$pic = 'wallimage.jpg'; //Путь к картинке
$text = 'test'; //Подпись
$cookie = authorization($email, $pass);
$photo = photo_load($id, $pic, $cookie);
wall_post($id, $photo, $text, $cookie);
function photo_load($id, $pic, $cookie){
$photo_box = curl("http://vkontakte.ru/photos.php?act=a_choose_photo_box&al=1&mail_add=&scrollbar_width=14&to_id=$id", $cookie);
preg_match('/photo_upload\', \'(.*?)\', {"act":"do_add","aid":-14,"gid":0,"mid":(.*?),"hash":"(.*?)","rhash":"(.*?)"/', $photo_box, $parametrs);
$check = curl("$parametrs[1]?mid=$parametrs[2]&aid=-14&gid=0&hash=$parametrs[3]&rhash=$parametrs[4]&al=1&act=check_upload&type=photo&ondone=Upload.callbacks.oncheck0", $cookie);
$do_add = curl("$parametrs[1]?act=do_add&aid=-14&gid=0&mid=$parametrs[2]&hash=$parametrs[3]&rhash=$parametrs[4]&vk=&from_host=vkontakte.ru&ajx=1", $cookie, array('photo' => '@'.$pic));
preg_match('/mid=(.*?)&aid=-14&gid=0&server=(.*?)&photos=(.*?)&hash=(.*?)$/', $do_add, $parametrs2);
$choose = curl("http://vkontakte.ru/al_photos.php?act=choose_uploaded&aid=-14&al=1&gid=0&hash=$parametrs2[4]&mid=$parametrs2[1]&photos=$parametrs2[3]&server=$parametrs2[2]", $cookie);
preg_match('/<!>([0-9]{1,}+_+[0-9]{1,})<!><!json>/', $choose, $photo);
print_r($parametrs);
return $photo[1];
}
function wall_post($id, $photo, $text, $cookie){
$pars_hash = curl("http://vkontakte.ru/wall$id", $cookie);
preg_match('/"post_hash":"(.*?)","/', $pars_hash, $hash);
$text = urlencode($text);
$send = curl("http://vkontakte.ru/al_wall.php?act=post&al=1&attach1=$photo&attach1_type=photo&facebook_export=&friends_only=&hash=$hash[1]&message=$text¬e_title=&official=&status_export=&to_id=$id&type=full_all", $cookie);
}
function authorization($email, $pass){
$res = get_headers("http://login.vk.com/?act=login&email=$email&pass=$pass");
if(substr_count($res[31],"remixsid")){
preg_match("/Set-Cookie: (.*?);/",$res[31],$cookie);
echo "[#]Authorization successful! \n";
return $cookie[1];
}else{
echo "[#]Login or password incorrect!\n";
exit;
}
}
function curl($url, $cookie, $data = false){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_COOKIE, $cookie);
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1');
if ($data){
curl_setopt($ch, CURLOPT_POSTFIELDS, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$response = curl_exec ($ch);
curl_close($ch);
return $response;
}
?>
Пробовал запрос делать вручную, что-то типа этого:
Для просмотра ссылки Войди
Не загружает и в ответ пишет {"code":"0"}
В чем может быть проблема ?Если есть готовое решение загрузки фото вконтакт, не жмитесь, выкладывайте.