Загрузка фотографий на сервер вконтакте

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Загрузка фотографий на сервер вконтакте

Сообщение Alazaur »

Пост в группе так же как и на своей странице, только перед ID надо поставить минус, н-р: -41523705 В паблике по идее должно быть так-же, а там х.з.
может есть какие-то другие методы постинга картинок на стене?
Угу, есть еще wall.post
Anni
Сообщения: 14
Зарегистрирован: 06 авг 2012, 10:48

Re: Загрузка фотографий на сервер вконтакте

Сообщение Anni »

Спасибо, сейчас попробую) Только в паблике еще доступ надо будет настраивать..)
Anni
Сообщения: 14
Зарегистрирован: 06 авг 2012, 10:48

Re: Загрузка фотографий на сервер вконтакте

Сообщение Anni »

Попробовала с wall.post сделать, как описано тут: http://habrahabr.ru/post/125155/
Создала Descktop приложение, но опять вылезает ошибка доступа:Permission to perform this action is denied
И как пишут, что при авторизации приложения по ссылке:

Код: Выделить всё

<a href="http://api.vkontakte.ru/oauth/authorize?client_id=<?=$vkontakteApplicationId?>&scope=offline,wall&redirect_uri=http://<?=$sYourDomain?>/my_folder/connect.php&response_type=code">Авторизация Вконтакте</a>
scope=wall перестал работать для десктопов, и у всех появляется такая ошибка.
Это как-то можно обойти?Или может есть 3й метод постинга картинок на стенах?)
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Загрузка фотографий на сервер вконтакте

Сообщение Alazaur »

Каво вы мучаетесь, у вас ифрейм? ифрейм. а накой вам сдался scope=wall усложняете себе жизнь
Загружайте curl'om картинку, передавайте, то что отдает вконтакт в JavaScript и им уже публикуйте запись, на стену, вы жеж вроде сказали вот тут http://flapps.ru/forum/topic3057-40.html#p38333 что у вас все получилось.
Anni
Сообщения: 14
Зарегистрирован: 06 авг 2012, 10:48

Re: Загрузка фотографий на сервер вконтакте

Сообщение Anni »

Сделала авторизацию curl'ом, постю:

Код: Выделить всё

 $post_send = array(                        'act' => 'post',                        'al' => 1,                        'hash' => $hash,                        'message' => $message,                        'to_id' => '-'.$public_id,                        'type' => 'all',                        'attach1_type'=> 'photo',                        'attach1'=>'photo1335362_265798302'                        );curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_send));curl_exec($ch);   
В итоге получаем ссылку:
http://vk.com/al_wall.php?act=post&al=1 ... _265798302

Сообщение постится, картинка нет..
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Загрузка фотографий на сервер вконтакте

Сообщение Alazaur »

Вобчем буду краток)))
HTML:
в строках 14 и 16 заменить
uid:1111111 на нужный id пользователя. Или если хотите постить на стене группы, то на gid:id_группы

Код: Выделить всё

<!DOCTYPE html><html>    <head>        <meta http-equiv="content-type" content="text/html; charset=UTF-8">        <script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script>        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>        <script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript"></script>    </head>    <body>        <script type="text/javascript">            <!--            function wallPost(){                VK.init(function(){                    VK.api("photos.getWallUploadServer", {uid:1111111}, function(data){                        $.post('upload.php', {upload_url:data.response.upload_url}, function(input){                            VK.api("photos.saveWallPhoto", {server:input.server, photo:input.photo, hash:input.hash, uid:1111111}, function(data){                                VK.api("wall.post", {owner_id:data.response[0].owner_id, message:"Сообщение на стену", attachments:data.response[0].id});                            });                        },'json')                    })                })            }            //-->        </script>        <a href="javascript:void(0);" onclick="wallPost();">На стену</a>    </body></html>
PHP: ( файл upload.php , картинка срока 5 )

Код: Выделить всё

<?phpif($_POST['upload_url']){    define('BASEPATH', str_replace('\\', '/', dirname(__FILE__)) . '/');    $upload_url = $_POST["upload_url"];    $post_params['photo'] = '@test.jpg'; //Ваша картинка    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $upload_url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    curl_setopt($ch, CURLOPT_POST, true);    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);    $result = curl_exec($ch);    curl_close($ch);    $result = json_decode($result);    $mess = array (server => $result->server, photo=> $result->photo, hash => $result->hash);    echo json_encode($mess);}?>
Класть все в одну папку и адрес HTML в адрес iFrame приложения.
azzzi
Сообщения: 164
Зарегистрирован: 13 сен 2010, 19:24

Re: Загрузка фотографий на сервер вконтакте

Сообщение azzzi »

подскажите а для внешних сайтов метод работает?

просто wall.post - ставит, а загрузку фото не делает...

приложение должно быть проверенным?

и у меня <script src="http://vkontakte.ru/js/api/xd_connection.js?20" type="text/javascript"></script> убрано - изза этой строчки айпи перестает работать
azzzi
Сообщения: 164
Зарегистрирован: 13 сен 2010, 19:24

Re: Загрузка фотографий на сервер вконтакте

Сообщение azzzi »

получилось
но когда приложение предлагает разместить запись на стене выводится только тект, фото не видно.

хотя в итоге на стене фото появляется.

что за косяк?))
azzzi
Сообщения: 164
Зарегистрирован: 13 сен 2010, 19:24

Re: Загрузка фотографий на сервер вконтакте

Сообщение azzzi »

так никто не подскажет почему в всплывающем окошке появляется только текст, без картинки?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Загрузка фотографий на сервер вконтакте

Сообщение Alazaur »

Попробуйте заменить слово attachments: на attachment: бывает помогает.
Если не поможет, то х.з. мне природа этого косяка не известна, он в одних приложениях есть в других нет...
Ответить