проблема с wall.savePost -invalid photo

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
Bren
Сообщения: 2
Зарегистрирован: 29 мар 2012, 15:06

проблема с wall.savePost -invalid photo

Сообщение Bren »

Привет всем. Нужна помощь. Хочу опубликовать на стене картинку с помощью photos.saveWallPhoto (если использую wall.post - все работает).
Передаю в параметр photos.saveWallPhoto - photo_id, выбивает ошибку - 'ERROR Invalid photo'
Не понятно почему т.к. photo_id получается вполне валидный при трейсе- 33052234_281548482
Где я мог ошибиться? Пробовал поменять Photo_id на любой другой - работает все отлично. В чем проблема не понятно.
Поиском не нашел ответа. Спасибо

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

  private function postWallHandler(e:MouseEvent):void { wrapper.external.api('photos.getWallUploadServer', {uid:viewer_id},onGetUploadServer, onError);}      public function onGetUploadServer(e:Object):void {    var bmpd:BitmapData = new BitmapData(300, 400,false,999199);    var bmp:Bitmap = new Bitmap(bmpd);    postRequest(bmp,e.upload_url);}                public function wallPost() {    wrapper.external.api("photos.saveWallPhoto", { server:uploaded_data.server, photo:uploaded_data.photo, hash:uploaded_data.hash, uid:viewer_id }, onSavePhoto )  ;     } private function onSavePhoto(getObj:Array) {   var post_id='post1';  var photo_id = getObj[0].owner_id + '_' + getObj[0].pid;  //проблема скорей всего с этим photo_id  var post_message='text';  wrapper.external.api('wall.savePost', {wall_id:flashVars.viewer_id,post_id:post_id,   photo_id:photo_id,   message:post_message}, photoPosted, onError);} public function postRequest(imgdata:Bitmap,uploadServer:String):void {    var jpg:JPGEncoder = new JPGEncoder(100);    var imageContent:ByteArray = jpg.encode(imgdata.bitmapData);    var fileContentType:String = 'image/jpeg';    var imgLoader:MultipartURLLoader = new MultipartURLLoader();  imgLoader.addFile(imageContent, "image.jpg", "photo",fileContentType);    imgLoader.addEventListener(Event.COMPLETE, function(e:Event):void {    uploaded_data = new Object();     uploaded_data = JSON.decode(e.currentTarget.loader.data);    wallPost();                   });    imgLoader.load(uploadServer);} 
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: проблема с wall.savePost -invalid photo

Сообщение Александр »

photos.saveWallPhoto или wall.savePost?

http://vk.com/developers.php?oid=-1&p=% ... 0%BB%D1%8F
Пример результата загрузки фотографии:
{"server": "4753", "photo": "2041c53171:w", "hash": "76a17dce73ccb6edf9d7382c7787d53a"}
33052234_281548482 - это реально то что получаешь? Есть ссылка на это фото вконтакте?
Bren
Сообщения: 2
Зарегистрирован: 29 мар 2012, 15:06

Re: проблема с wall.savePost -invalid photo

Сообщение Bren »

photos.saveWallPhoto или wall.savePost?
wall.savePost конечно, это я ошибся в посте.

Вобщем пока проблема в этом-
пытаюсь загрузить картинку с помощью photos.saveWallPhoto , кстати начал использавать APIConnection вместо wrapper

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

VK.api("photos.saveWallPhoto", { server:uploaded_data.server, photo:uploaded_data.photo, hash:uploaded_data.hash }, onSavePhoto, onError )  ; 
получаю вроде бы валидный ответ -

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

{"response":[{"pid":281606457,"id":"photo33052334_281606457","aid":-14,"owner_id":33052334,"src":"http:\/\/cs303411.userapi.com\/u33052334\/-14\/m_79260736.jpg","src_big":"http:\/\/cs303411.userapi.com\/u33052334\/-14\/x_3719bdbd.jpg","src_small":"http:\/\/cs303411.userapi.com\/u33052334\/-14\/s_23af8e3b.jpg","width":100,"height":200,"text":"","created":1333117689}]}
то есть картинка хранится где-то на сервере, можно в этом убедиться перейдя по ссылке из ответа. Кстати, посмотрел у себя в фоторафиях, в профиле - картинки нет, может это типа так и надо? Теперь хочу опубликовать только что залитую картинку себе на стену.Использую wall.savePost

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

 var photo_id = getObj[0].owner_id + '_' + getObj[0].pid; //photo_id формирую как написано в документации. var photo=uploaded_data.photo;  //что надо в это поле передавать? в ответе из "photos.saveWallPhoto"  нет поля photoVK.api('wall.savePost', {wall_id:flashVars.viewer_id,post_id:post_id, photo:photo,  photo_id:photo_id,   message:post_message, hash:uploaded_data.hash}, photoPosted, onError);
Запутался вобщем. При использовании 'wall.post' все работает, но мне уже просто интересно как работает 'wall.savePost' :D
Ответить