Пытаюсь загрузить фото на стену, используя эту инструкцию:
Загрузка фотографий на стену пользователя осуществляется в 3 этапа:
1. С помощью метода photos.getWallUploadServer приложение узнает http-адрес для загрузки фотографии на стену текущего
пользователя, другого пользователя или группы в зависимости от переданных параметров uid или gid.
2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен включать поле photo, содержащее файл с изображением (JPG, PNG, BMP или GIF)
Пример результата загрузки фотографии:
{"server": "4753", "photo": "2041c53171:w", "hash": "76a17dce73ccb6edf9d7382c7787d53a"}
3. С помощью метода photos.saveWallPhoto приложение передает серверу полученные данные (server, photo, hash и
опциональные uid и gid) и получает данные о загруженной фотографии.
После успешной загрузки фотографии Вы можете разместить её на стене, используя метод wall.post и указав идентификатор
фотографии в параметре attachment. Обратите внимание, что при размещении фотографии на стене другого пользователя или
группы необходимо указывать параметры uid и gid, соответствующие используемым в п.1.
Но первый же запрос (photos.getWallUploadServer) выдает ответ: Permission to perform this action is denied by user
У пользователя все разрешено, в приложении стоит галочка "запрашивать доступ к стене".
Что необходимо предпринять, что бы этот запрос отработал нормально?
photos.getWallUploadServer
Re: photos.getWallUploadServer
хм, а доступ к друзьям?
Re: photos.getWallUploadServer
тоже есть
Re: photos.getWallUploadServer
Доступ к фотографиям?
Запрос выполняется с клиентской части или с серверной?
Запрос выполняется с клиентской части или с серверной?
Re: photos.getWallUploadServer
Да, спасибо, проблема была в доступе к фотографиям. Хотя, не понимаю, зачем он мне? Я ведь не обращаюсь к альбомам пользователя. Но с этим доступом и на стену фото отправилось благополучно.
Re: photos.getWallUploadServer
как это не обращаешься? А фотки по твоему куда грузятся? В специальный альбом который называется "Фотографии на моей странице" не?
Re: photos.getWallUploadServer
Делал загрузку изображения из флэша во вконтакт, для борьбы с политиками безопасности использовал php скрипт(флэшка находится на своем домене, поэтому пост запрос вконтакт выполнить не может). Столкнулся с проблемой, что если сразу загрузить полученную фотографию вконтакт, в ответе он выдает пустой список фоторафий, а фотография естественно не загружается.
Вот этот код непонятно, почему не рабтает:
Если же сначала сохранять фотографию, а потом передавать в пост запрос загруженное изображение, вконтакт успешно сохраняет фотографию.
Хотелось бы узнать, что может добавиться в файл, после сохранения его в .jpg на сервере, что позволяет вконтакту прочитать его.
Вот этот код непонятно, почему не рабтает:
Код: Выделить всё
<?php $postURL = $_POST['photoURL']; $photoData = $_POST['photoData']; $decodedPhotoData = base64_decode($photoData); $postData['photo'] = $decodedPhotoData; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $postURL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); $output = curl_exec($ch); curl_close($ch); echo $output;?>Код: Выделить всё
<?php $viewerID = $_POST['viewerID']; $postURL = $_POST['photoURL']; $photoData = $_POST['photoData']; $fileExtension = '.jpg'; $fileName = 'screenshots/' . (int)$viewerID . $fileExtension; $decodedPhotoData = base64_decode($photoData); if (viewerId) { $file=fopen($fileName,'w'); fwrite($file,$decodedPhotoData); fclose($file); } //$postData['photo'] = $decodedPhotoData; $postData['photo'] = '@' . $fileName; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $postURL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); $output = curl_exec($ch); curl_close($ch); echo $output;?>
