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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Mar 2015
Сообщений: 12
По умолчанию Error #2048: Security sandbox violation

Пытаюсь авторизироваться загруженным приложением на сервер vk.com, выдает ошибку

Цитата:
Error #2048: Security sandbox violation cannot load data from oauth.vk.com
Про кроссдоменные запросы вкурсе, что локально, что удаленно с серверов вк выдается данная ошибка.

В корне localhost crossdomain.xml

Код:
<?xml version="1.0"?> 
<cross-domain-policy> 
	<allow-access-from domain="*" secure="false" />
</cross-domain-policy>
Пробовал еще много вариантов, что нашел в гугле, в итоге оставил этот грубый метод.

Сам код получения сессии

Код AS3:
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("https://oauth.vk.com/access_token?client_id=здесь_данные_авторизации");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR,ioErrHandler);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,secErrorHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,statusHttpHandler);
 
function statusHttpHandler(event:HTTPStatusEvent):void {
     tf.htmlText = "<p>" + event.status + "</p>";
}
 
function ioErrHandler(event:IOErrorEvent):void {
     tf.htmlText = "<p>Error load json</p>";
 }
 
function secErrorHandler(event:SecurityErrorEvent):void {
     tf.htmlText = "<p>" + event.text + "</p>";
 }
 
function onComplete(event:Event):void {
     var loader:URLLoader = URLLoader(event.target);  
     tf.htmlText = "<p>" + loader.data + "</p>";
}
Пляски с бубном и добавление/комментирование политик безопасности ни к чему не привели

Код AS3:
Security.allowDomain("*");
Security.allowInsecureDomain("*");
Security.loadPolicyFile("http://vk.com/crossdomain.xml");
Кстати, специально установил пару приложений, чтобы подсмотреть через http://showmycode.com как у них реализовано, может я что-то не учел ни к чему не привели. Мало того, мой дебаг флеш плеер часто выплевывал подобные ошибки на уже прошедших модераторскую проверку и успешно опубликованных приложениях.

Подскажите пожалуйста, в какую сторону курить *facepalm*

Заранее благодарю.

С ув. Дмитрий

Добавлено через 4 минуты
Почему-то не дает отредактировать сообщение.

Добавлю, что флеш плеер обновил до самой последней версии, так как в результате длительного поиска натолкнулся на официальном адобовском сайте информацию об этом.

Добавлено через 5 минут
Еще добавлю, вот такая ошибку часто ловлю почти в любом приложении

Цитата:
Error #2044: Unhandled StatusEvent:. level=error, code=
Может поможет как-то

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
А почему у вас в файле политик указано secure = "false", при том что авторизация вк происходит по протоколу https (hypertext transfer protocol secure)?
Код AS3:
https://oauth.vk.com/access_token?client_id=здесь_данные_авторизации
Скорее всего проблема в этом и есть. Плюс в тестовый файл политик неплохо бы добавить еще to-ports="*"

Старый 20.03.2015, 08:13
projectx вне форума Посмотреть профиль Отправить личное сообщение для projectx Найти все сообщения от projectx
  № 3  
Ответить с цитированием
projectx

Регистрация: Mar 2015
Сообщений: 12
Да, у меня именно так с самого начало и было. Ввели в заблуждение некоторые ответы на stackoverflow

Код:
<?xml version="1.0"?> 
<cross-domain-policy> 
	<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
К сожалению не помогло. Загружал флешку, повторюсь, прямо на сам ВК и такая же проблема(

Добавлено через 35 минут
Выяснил, что для flash приложений oauth авторизация не требуется и запрос к API спокойно без ошибок начал работать. Только выдает json ответ

Код:
{"error":{"error_code":5,"error_msg":"User authorization failed: invalid access_token (4).","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"users.get"},{"key":"user_id","value":"4835..."},{"key":"v","value":"5.29"},{"key":"access_token","value":"e65811a40bd6d...............................805e0"}]}}
Передавал полученный sid

Код AS1/AS2:
var request:URLRequest = new URLRequest("https://api.vk.com/method/users.get?user_id=" + flashVars["api_id"] + "&v=5.29&access_token=" + flashVars["sid"]);

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Если это простая флешка, то лучше воспользуйтесь готовой контактовской библиотекой
С ней все работает без лишних заморочек
https://vk.com/dev/Flash_SDK

Цитата:
К сожалению не помогло. Загружал флешку, повторюсь, прямо на сам ВК и такая же проблема(
Скорее всего файл просто закэшировался браузером. Почистите кэш после замены

Старый 20.03.2015, 09:55
projectx вне форума Посмотреть профиль Отправить личное сообщение для projectx Найти все сообщения от projectx
  № 5  
Ответить с цитированием
projectx

Регистрация: Mar 2015
Сообщений: 12
Спасибо Вам Кейси Райан, разобрался буквально за минут 15 и все работает идеально!

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код:
The URL policy file is located, by default, in the root directory of the target server, with the name
crossdomain.xml (for example, at www.example.com/crossdomain.xml). Flash application developers can
specify another location by calling the ActionScript loadPolicyFile() method. The URL policy file located
in the root directory is referred to as the master policy file.
Как ясно следует из этой цитаты, crossdomain.xml должен отдавать target server. Вы можете сами скачать https://oauth.vk.com/crossdomain.xml? У меня не получилось, потому что его там нет. Может быть вы знаете путь, отличный от дефолтного, по которому он лежит в https://oauth.vk.com? Если да, то можно явно загрузить с помощью loadPolicyFile() и дальше разбираться с его содержимым. Если же файла политики безопасности в принципе не существует в этом домене, то вы не сможете взаимодействовать с этим сервером через http/https.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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