|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Сохранение картинок в альбом из iFrame флеш приложения
Парни, как можно загрузить картинку в альбом в контакте если флешка встроена в айфрейм? Постоянно вылетает нарушение изолированной среды, когда ответ приходит. Если флешка просто залита в контакт, все норм работает и сохраняется.
Самая тупость в том, что URL запросы к конакту работают нормально, если к ним не прикреплять байтмассив с изображением, и текстовые данные приходят. Получается что даже картинка отправляется, но когда приходит JSON объект с данными для сохранения server, hash, aid то вылетает ошибка. Как это проксировать через свой сервер тоже ума не приложу. Уже всю голову сломал. У кого-нибудь есть рабочий вариант подобных манипуляций? п.с. Сейчас код вот такой: private static function uploadVkPhoto():void { var imageStream:ByteArray = PNGEncoder.encode(_image.bitmapData); var stream:ByteArray = new ByteArray(); var delimeter:String = "----------Ij5ae0ae0KM7GI3KM7"; var imageName:String = MD5.encrypt(getTimer() + "") + ".png"; stream.writeUTFBytes("--" + delimeter + '\r\nContent-Disposition: form-data; name="file1"; filename="' + imageName + '"\r\nContent-Type: image/png\r\n\r\n'); stream.writeBytes(imageStream); stream.writeUTFBytes("\r\n--" + delimeter + '--\r\n'); var header:URLRequestHeader = new URLRequestHeader ("Content-type", "multipart/form-data; boundary=" + delimeter); var urlRequest:URLRequest = new URLRequest(_vkUploadServer); urlRequest.requestHeaders.push(header); urlRequest.method = URLRequestMethod.POST; urlRequest.data = stream; var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; urlLoader.addEventListener( Event.COMPLETE, onVkPhotoUploaded ); urlLoader.addEventListener( IOErrorEvent.IO_ERROR, photoUploadError ); try { urlLoader.load( urlRequest ); } catch (e:Error) { trace(e.getStackTrace()); } } private static function onVkPhotoUploaded(e:Event):void { e.target.addEventListener( Event.COMPLETE, onVkPhotoUploaded ); e.target.addEventListener( IOErrorEvent.IO_ERROR, photoUploadError ); var responce: Object = Json.decode(unescape(String(e.target.data))); var server: String = responce.server; var hash: String = responce.hash; var photosList: String = responce.photos_list; var aid: String = responce.aid; _vk.api("photos.save", { photos_list: photosList, aid: aid, hash: hash, server: server }, onVkPhotoSaved, onVkError ); } |
|
|||||
Регистрация: Jun 2013
Сообщений: 8
|
Ну как, нашлось решение? Столкнулся с аналогичной проблемой, хочу залить фотографию из приложения на стену, тоже происходит нарушение изолированной среды.
Адрес загрузки фото получается нормально, но при попытки сделать на него пост запрос с фотографией вываливается ошибка: Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: cannot load data from Последний раз редактировалось anonrab; 10.07.2013 в 17:37. |
|
|||||
Решил как советовали уже сталкивающиеся с этой проблемой. Просто залил файл как дополнительный swf на сервер контакта и вставил ссылку на него в айфрейм.
Так же мне в контактовской техподдержке сказали, что никакой привязки по IP нет, и дали вот эту ссылку: http://pastebin.com/KSyv6kwV сказали, что вариант рабочий 100%. Но я не проверял, так как необходимость временно отпала. |
|
|||||
Регистрация: Jun 2013
Сообщений: 8
|
Не понял, причем здесь swf и привязка по айпи, ведь ты загружаешь картинку в альбом? У меня приложение загружено тоже через айфрэйм, без предварительной загрузки на свой сервер.
Сначала получаю url вконтакта на который должна быть загружена фотография, потом post запросом отправляю png на этот url. Возникает security error. Загружать сначала пробовал как и ты, через url loader, но не работало. Прочитал что для этого используют MultiPartLoader, но с ним такая же ошибка. Подозреваю, что ошибка из за того, что crossdomain где-то неправильно указан. Но везде пишут, что для загрузки фото на сервер загрузка должна инициализироваться при клике на кнопку. Попробовал при клики - все та же ошибка.. |
|
|||||
Цитата:
Иного объяснения, как участие IP адреса в формировании подписи запроса у меня тогда не нашлось. Цитата:
Цитата:
|
|
|||||
Регистрация: Jun 2013
Сообщений: 8
|
Цитата:
Цитата:
То есть получается существует единственный способ отправлять фотографию вконтакт - загрузить на свой сервер, а потом оттуда вконтакт. Неправильно выразился - это я не про приложение, а про загружаемую картинку. Приложение то как раз на моем сервере, в айфрэйме. |
|
|||||
Цитата:
|
|
|||||
Регистрация: Jun 2013
Сообщений: 8
|
Ну это же неудобно - чтобы обновить приложение во всех соц сетях, вместо простого изменения swf на своем сервере, придется отдельно обновлять приложение через интерфейс загрузки.
Попробовал загружать swf как дополнительный файл и встроить его в iframe через swfobject - не работает. Просто белый экран вместо флэшки. Это похоже опять политики безопасности - ну как iframe может загрузить flash приложение с совершенно другого домена? Добавлено через 2 часа 14 минут Слава флэш богу разобрался. Все таки можно загрузить вконтакте дополнительный swf и загрузить его в iframe через swfobject, даже если страница открыта не вконтакте. |
|
|||||
Цитата:
|
|
|||||
Регистрация: May 2010
Сообщений: 543
|
Цитата:
Костыль с заливкой приложения на их сервер лишает этого удобства.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
Часовой пояс GMT +4, время: 01:59. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|