[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка фото по get параметру в контакт
m4a1fox
Господа, всем доброго утра! Вопрос такой! Кто нибудь делал загрузку фото на страницу в контакте? Спасибо!
P.S. Просто интересуют пару моментов, а спросить толком не у кого!



Спустя 25 минут, 40 секунд (30.08.2011 - 11:02) Игорь_Vasinsky написал(а):
не сталкивалс на практике, а вот в теории и разговоров много слушал.

1. авторизация через cURL
2. и всё остальное тоже.

Спустя 1 минута, 5 секунд (30.08.2011 - 11:03) EvilDev написал(а):
Делал только парсер. Там же все ан JS. Смотри скрипты, какие данные отправляются (через live http header) и через curl загружай

Спустя 7 минут, 19 секунд (30.08.2011 - 11:10) m4a1fox написал(а):
Да у меня проблема собственно в загрузчике! На хабре нашел скрипт,

/**
* Добавляет в альбом фотографию.
* Возвращает массив:
* 'user_id' => пользователь который загрузил фото
* 'photo_id' => порядковый номер фото в системе
* 'mixed_id' => уникальный photo_id (состоит из user_id + photo_id), который далее
* можно передать в makePost и таким образом опубликовать ее на стенке и она появится
* у нас в альбоме "Фотографии со стены"
*/

private function uploadPhoto($imgURL, $linkTo)
{
$u = urlencode($imgURL);
$i = urlencode($linkTo);
$c = $this->getCurl();
$q = 'act=a_photo&url='.$u.'&image='.$i.'&extra=';
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_REFERER, 'http://vkontakte.ru/share.php');
curl_setopt($c, CURLOPT_POSTFIELDS, $q);
curl_setopt($c, CURLOPT_URL, 'http://vkontakte.ru/share.php');
$r = $this->execCurl($c, 'uploadPhoto');
if(preg_match('/onUploadDone/i', $r, $o))
{
preg_match_all('/{"user_id":(\d+),"photo_id":(\d+)}/i', $r, $out);
$f = array(
'user_id' => $out[1][0],
'photo_id' => $out[2][0],
'mixed_id' => $out[1][0].'_'.$out[2][0]);
return $f;
}
else
{
return false;
}
}


/**
* Грузим картинку на стену
*/

public function postPicture($imgUrl, $linkTo='')
{
$h=$this->getHash();
if (!$h)
return false;
$img=$this->uploadPhoto($imgUrl, $linkTo);
pr($img);
if (!$img)
{
$this->RaiseExeption("Picture is not uploaded");
return false;
}
$r = $this->makePost($h['post_hash'], $linkTo, "", "", "", $img["mixed_id"], $h['user_id'], "photo");
$c = preg_match_all('/page_wall_count_all/smi',$r,$f);
if( $c == 0 )
{
return false;
}
else
{
return true;
}
}


Вот только он не хочет фото грузить! Почему - не знаю! Второй день бьюся с ним! Поэтому и интересуюсь, кто делал такое????

Спустя 4 минуты, 17 секунд (30.08.2011 - 11:15) Игорь_Vasinsky написал(а):
А чёт я не вижу момента авторизации в твой аккаунт...

Спустя 54 секунды (30.08.2011 - 11:16) m4a1fox написал(а):
Игорь_Vasinsky
Не не! Это вырезка! Авторизация есть! Просто там еще постинг новости - это работает! А вот с загрузчиком - беда!

Спустя 2 минуты, 12 секунд (30.08.2011 - 11:18) Игорь_Vasinsky написал(а):
может ошибку какую нить говорит?

Спустя 6 минут, 42 секунды (30.08.2011 - 11:24) m4a1fox написал(а):
Игорь_Vasinsky
Цитата
может ошибку какую нить говорит?

Да, извиняюсь! Говорит! Вот она

Notice: Picture is not uploaded in N:\home\proba2.ru\www\zk.com\class\vk.wallpost.php
on line 392 in N:\home\proba2.ru\www\zk.com\class\vk.wallpost.php on line 87


Линия 392

if (!$img)
{
$this->RaiseExeption("Picture is not uploaded"); ---- вот эта
return false;
}


Линия 87

/**
* Выбрасывает исключение с указанным тектом
*/

public static function RaiseExeption($txt,$level=E_USER_NOTICE)
{
$trace = debug_backtrace();
trigger_error($txt. ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE); ---- вот эта
}

Спустя 2 минуты, 31 секунда (30.08.2011 - 11:27) Игорь_Vasinsky написал(а):
Понять не могу... толи она во временную директорию загрузиться не может... толи не пдходит по каким то критериям....

Спустя 1 минута, 56 секунд (30.08.2011 - 11:29) m4a1fox написал(а):
Игорь_Vasinsky
Хм..... временную говорите? Но как это понять только? Проблема состоит в том, что реально не понятно - какая ошибка?!

Спустя 4 минуты, 24 секунды (30.08.2011 - 11:33) m4a1fox написал(а):
Как бы есть еще один баг! Вот тут

$h=$this->getHash();
if (!$h)
return false;
$img=$this->uploadPhoto($imgUrl, $linkTo);
pr($img); ------------ этой функции нет!
if (!$img)

То ли это опечатка, то ли автор что-то не доделал! Вот в растерянности я! Сейчас сижу cUrl изучаю! Может он мне поможет! Хотя навряд ли, но лишним все равно не будет!

Спустя 1 минута, 3 секунды (30.08.2011 - 11:34) Игорь_Vasinsky написал(а):
Надо выяяснить что не работает?
это
function uploadPhoto($imgURL, $linkTo) 

или это
public function postPicture($imgUrl, $linkTo='')


т.к. либо не работает вторая
а может она и не работае из-за того что не работает первая

да.. может опечатка, попробуй погуглить, мож ещё где такие посты есть...
потом дальше...

Спустя 8 минут, 42 секунды (30.08.2011 - 11:43) m4a1fox написал(а):
Игорь_Vasinsky
Цитата
попробуй погуглить

Да вот сижу - гуглю! Посты как бы есть, но только не полностью раскрыты! Представим что вот тут

$img=$this->uploadPhoto($imgUrl, $linkTo);
pr($img);
if (!$img)
{
echo ("Picture is not uploaded");
return false;
}


Все грузится правильно и тогда можно попробовать сделать так


$img=$this->uploadPhoto($imgUrl, $linkTo);

Тогда на страницу идет точка(.). Значит соединение есть, значит ошибка в
 function uploadPhoto($imgURL, $linkTo) 

Спустя 4 минуты, 4 секунды (30.08.2011 - 11:47) Эли4ка написал(а):
может проблема в самом контакте?

Спустя 3 минуты, 7 секунд (30.08.2011 - 11:50) m4a1fox написал(а):
Может Эли4ка! но вряд ли! Думаю проблема в скрипте, может адрес не правильно написан! Черт его знает?!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.