Получение актуальных URL-адресов изображений профилей Facebook и Twitter для политики безопасности Flex - PullRequest
0 голосов
/ 26 октября 2011

Я пытаюсь отобразить изображения профиля из Facebook и Twitter. Для Facebook URL-адреса, которые я получаю, выглядят примерно так (не фактические URL):

http://graph.facebook.com/965412145/picture

Который затем перенаправляется на «фактический» URL, как это:

http://profile.ak.fbcdn.net/hprofile-ak-snc4/370471_9631690_1796253478_r.jpg

Я также делаю это с твиттером, с той же проблемой (перенаправленный URL).

Итак, когда я загружаю изображение, оно загружается нормально. Но когда я закрываю контейнер, в котором находится изображение, я получаю нарушение изолированной программной среды безопасности.

Я могу заставить все это работать, если добавить URL из «фактического» URL-адреса изображения следующим образом:

request = new URLRequest("http://profile.ak.fbcdn.net");
loader = new Loader();
context = new LoaderContext();
context.checkPolicyFile = true;
loader.load(request, context);

Однако во время выполнения я фактически не знаю, что такое «фактический» URL-адрес изображения, поэтому я не могу жестко закодировать этот домен (и не хочу).

Есть ли способ получить фактический URL (изнутри flex) изображения, чтобы я мог добавить правильный домен в загрузочный текст?

Любые идеи приветствуются!

1 Ответ

1 голос
/ 26 октября 2011

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

Если я правильно понял, вам нужно обнаружить перенаправленный URL, прослушивая событие COMPLETE (или событие ошибки), а затем обратиться к свойству LoaderInfo.url. Это свойство будет отражать конечный URL в случае перенаправления. Например, вы должны иметь такой код в слушателе:

var ldr:LoaderInfo = event.target as LoaderInfo;
var url:String;
try
{
    url = ldr.url;
    // Split off URL base, load policy file, etc here
}
catch (e:Error)
{
    // Unable to detect final URL due to error.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...