Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Загрузка изображения в албом пользователя ВКонтакте в один клик (http://www.flasher.ru/forum/showthread.php?t=181270)

Загадочный 19.06.2012 19:07

Загрузка изображения в албом пользователя ВКонтакте в один клик
 
По клику по кнопке формируется изображение (фото сцены), которое необходимо опубликовать ВКонтакте у пользователя в альбоме. Если альбома у пользователя нет, то его нужно создать.

Очередь операций такая: (по клику на кнопку)
1) получаем все альбомы пользователя
2) если нужного альбома нет, то создаем его,
3) получаем URL сервера, куда нужно грузить картинку,
4) формируем пост запрос

Проблемы начинаются при отправке POST-запроса с изображением на сервер VK. Получаю "Нарушение безопасности изолированной среды ***"

Подключение к http://cs403928.vkontakte.ru/upload.php?act=do_add... прервано – нет разрешения от ...VKTest.swf

Если сразу отсылать POST запрос по клику без всяких других запросов к api VK, то изображение отлично отсылается. Подскажите, каким образом можно обойти это ограничение? Нужен именно один клик.

Код формирование POST запроса с изображением на responce.upload_url, полученный от VK:
Код AS3:

var screenshot:BitmapData = new BitmapData(stage.stage.stageWidth, stage.stage.stageHeight);
screenshot.draw(stage.stage);
 
var pngStream:ByteArray = PNGEncoder.encode(screenshot);                                                       
var mdata:MultipartData = new MultipartData();
 
urlRequest = new URLRequest(responce.upload_url);
urlRequest.method = URLRequestMethod.POST;
urlRequest.contentType = "multipart/form-data; boundary=" + MultipartData.BOUNDARY;
urlRequest.requestHeaders.push(
        new URLRequestHeader(
                "Content-type", "multipart/form-data; boundary=" + MultipartData.BOUNDARY
        )
);
mdata.addFile(pngStream, "file1");
 
urlRequest.data = mdata.data;
 
urlLoader.addEventListener(Event.COMPLETE, onAlbumUploadResponse);                       
 
try{
        urlLoader.load(urlRequest)
}catch(err:Error){
        PR.pr(err);
}


vizgl 20.06.2012 03:39

Попробуйте добавить
Код AS1/AS2:

Security.allowDomain("*");

перед инициализацией апи

Загадочный 20.06.2012 12:29

Уже есть, не помогает.

GBee 26.06.2012 17:18

Проводить операции не нуждающиеся в клике до клика.


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

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