Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.06.2013, 16:28
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 1  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Question Сохранение картинок в альбом из iFrame флеш приложения

Парни, как можно загрузить картинку в альбом в контакте если флешка встроена в айфрейм? Постоянно вылетает нарушение изолированной среды, когда ответ приходит. Если флешка просто залита в контакт, все норм работает и сохраняется.
Самая тупость в том, что URL запросы к конакту работают нормально, если к ним не прикреплять байтмассив с изображением, и текстовые данные приходят. Получается что даже картинка отправляется, но когда приходит JSON объект с данными для сохранения server, hash, aid то вылетает ошибка.
Как это проксировать через свой сервер тоже ума не приложу. Уже всю голову сломал.
У кого-нибудь есть рабочий вариант подобных манипуляций?

п.с. Сейчас код вот такой:
Код AS3:
		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 );
		}
Он рабочий. Но только если флешка не на другом домене.

Старый 10.07.2013, 17:01
anonrab вне форума Посмотреть профиль Отправить личное сообщение для anonrab Найти все сообщения от anonrab
  № 2  
Ответить с цитированием
anonrab

Регистрация: Jun 2013
Сообщений: 8
Ну как, нашлось решение? Столкнулся с аналогичной проблемой, хочу залить фотографию из приложения на стену, тоже происходит нарушение изолированной среды.

Адрес загрузки фото получается нормально, но при попытки сделать на него пост запрос с фотографией вываливается ошибка:
Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: cannot load data from


Последний раз редактировалось anonrab; 10.07.2013 в 17:37.
Старый 10.07.2013, 17:47
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Решил как советовали уже сталкивающиеся с этой проблемой. Просто залил файл как дополнительный swf на сервер контакта и вставил ссылку на него в айфрейм.
Так же мне в контактовской техподдержке сказали, что никакой привязки по IP нет, и дали вот эту ссылку:
http://pastebin.com/KSyv6kwV
сказали, что вариант рабочий 100%. Но я не проверял, так как необходимость временно отпала.

Старый 10.07.2013, 18:36
anonrab вне форума Посмотреть профиль Отправить личное сообщение для anonrab Найти все сообщения от anonrab
  № 4  
Ответить с цитированием
anonrab

Регистрация: Jun 2013
Сообщений: 8
Не понял, причем здесь swf и привязка по айпи, ведь ты загружаешь картинку в альбом? У меня приложение загружено тоже через айфрэйм, без предварительной загрузки на свой сервер.

Сначала получаю url вконтакта на который должна быть загружена фотография, потом post запросом отправляю png на этот url. Возникает security error. Загружать сначала пробовал как и ты, через url loader, но не работало. Прочитал что для этого используют MultiPartLoader, но с ним такая же ошибка.

Подозреваю, что ошибка из за того, что crossdomain где-то неправильно указан. Но везде пишут, что для загрузки фото на сервер загрузка должна инициализироваться при клике на кнопку. Попробовал при клики - все та же ошибка..

Старый 10.07.2013, 18:54
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Не понял, причем здесь swf и привязка по айпи, ведь ты загружаешь картинку в альбом?
При том, что для проксирования всей этой хрени через свой сервер я передавал серверу ссылку для загрузки, делал все так же как на клиенте, абсолютно. При этом на сервер в результате возвращался пустой массив photos.
Иного объяснения, как участие IP адреса в формировании подписи запроса у меня тогда не нашлось.

Цитата:
Подозреваю, что ошибка из за того, что crossdomain где-то неправильно указан.
Естественно. Кто же будет вносить в контактовский кроссдоменник адреса серверов сторонних разрабочиков?

Цитата:
У меня приложение загружено тоже через айфрэйм, без предварительной загрузки на свой сервер.
Это как? Оно хранится на контактовском сервере?

Старый 10.07.2013, 19:48
anonrab вне форума Посмотреть профиль Отправить личное сообщение для anonrab Найти все сообщения от anonrab
  № 6  
Ответить с цитированием
anonrab

Регистрация: Jun 2013
Сообщений: 8
Цитата:
Сообщение от caseyryan Посмотреть сообщение
При том, что для проксирования всей этой хрени через свой сервер я передавал серверу ссылку для загрузки, делал все так же как на клиенте, абсолютно. При этом на сервер в результате возвращался пустой массив photos.
Иного объяснения, как участие IP адреса в формировании подписи запроса у меня тогда не нашлось.
То есть ты в итоге сделал загрузку изображений вконтакт, через свой сервер. Клиент грузит изображение на свой сервер, там его сохраняет и возвращает url сохраненного изображения на клиент. Клиент постит картинку вконтакт используя предоставленный сервером урл. Мне бы хотелось загружать изображения, не загружая свой сервер, а используя встроенные средства вконтакта.

Цитата:
Сообщение от caseyryan Посмотреть сообщение
Естественно. Кто же будет вносить в контактовский кроссдоменник адреса серверов сторонних разрабочиков?
Согласен, никто. Но тогда получается, что флэш приложение находящееся на моем сервере, открытое вконтакте в айфрэйме, не сможет обратиться к серверам вконтакте для загрузки на них фотографий из за этих политик?

То есть получается существует единственный способ отправлять фотографию вконтакт - загрузить на свой сервер, а потом оттуда вконтакт.


Цитата:
Сообщение от caseyryan Посмотреть сообщение
Это как? Оно хранится на контактовском сервере?
Неправильно выразился - это я не про приложение, а про загружаемую картинку. Приложение то как раз на моем сервере, в айфрэйме.

Старый 11.07.2013, 10:51
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
То есть получается существует единственный способ отправлять фотографию вконтакт - загрузить на свой сервер, а потом оттуда вконтакт.
нет, не единственный. У меня приложение залито как дополнительный swf файл на сервер вконтакте и ссылка вставлена в айфрейм

Старый 30.08.2013, 20:43
anonrab вне форума Посмотреть профиль Отправить личное сообщение для anonrab Найти все сообщения от anonrab
  № 8  
Ответить с цитированием
anonrab

Регистрация: Jun 2013
Сообщений: 8
Ну это же неудобно - чтобы обновить приложение во всех соц сетях, вместо простого изменения swf на своем сервере, придется отдельно обновлять приложение через интерфейс загрузки.

Попробовал загружать swf как дополнительный файл и встроить его в iframe через swfobject - не работает. Просто белый экран вместо флэшки. Это похоже опять политики безопасности - ну как iframe может загрузить flash приложение с совершенно другого домена?

Добавлено через 2 часа 14 минут
Слава флэш богу разобрался. Все таки можно загрузить вконтакте дополнительный swf и загрузить его в iframe через swfobject, даже если страница открыта не вконтакте.

Старый 31.08.2013, 11:23
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 9  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Ну это же неудобно - чтобы обновить приложение во всех соц сетях, вместо простого изменения swf на своем сервере, придется отдельно обновлять приложение через интерфейс загрузки.
Какая разница, заливать его на свой сервер или в контакт? Работы столько же.

Старый 05.09.2013, 18:32
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 10  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
Какая разница, заливать его на свой сервер или в контакт? Работы столько же.
Ничего подобного. Когда приложение автоматом собирается для нескольких соцсетей и деплоится на свой сервер - это очень круто и удобно. 1 приложение - на несколько соц сетей.

Костыль с заливкой приложения на их сервер лишает этого удобства.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:59.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.