我想从AS3加载Facebook的个人资料图像(朋友图像),但我似乎遇到了安全问题。从ActionScript加载个人资料图片与动作脚本3
我目前使用Actionscript 3的“官方”Adobe Facebook API工作正常。但是,在浏览器中运行我的应用程序时,我似乎无法加载配置文件图像。在Flash IDE中运行时,图像加载正常。
的图像从https://graph.facebook.com
加载并似乎有在该域的crossdomain.xml策略:
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" secure="false" />
<site-control permitted-cross-domain-policies="master-only" />
</cross-domain-policy>
在其它来源我发现,装载应的图像时添加的ContextLoader我Loader对象解决问题,但这似乎并非如此:
loader = new Loader();
// add some listeners here...
loader.load(new URLRequest("imageurl"), new LoaderContext(true));
我不太确定如何进行此刻。我希望Adobe Facebook API能够提供这方面的帮助,但我似乎无法找到解决此问题的任何事情。
任何帮助非常感谢。
UPDATE:
我注意到,当我访问该实际上,我重定向到Facebook的CDN,其中实际图像存储在浏览器中的图像之一。当我使用重定向的URL对图像url进行硬编码时,我可以在浏览器中加载图像。看来,这不是一个安全问题,而是一个重定向问题。
如果这是一个重定向问题,那么问题就会变成;我如何让Flash Player从重定向的URL加载图像?
更新2:
看来,URLRequest类具有followRedirects
财产仅在AIR提供。
更新3:
我目前使用一个PHP script让我重定向的URL作为一个变通,但这当然是远远不够理想,并可能在我的服务器上一个巨大的压力。
感谢卢克!我仍然需要在不同的项目上再次使用这个解决方案,很奇怪,它只是在这里吗? – daidai 2010-11-09 05:33:18
卢克,你是如何实现重定向的PHP?即时通讯仍然有问题。 – daidai 2010-11-09 06:15:37
@ martin的方法工作得很好。问题确实是由重定向造成的。我打电话给“http:// graph.facebook.com”,它重定向到Facebook的图像服务器。除了'http:// profile.ak.fbcdn.net',Facebook还使用其他服务器。我找到的是'http:// external.ak.fbcdn.net'。多次调用'Security.loadPolicyFile'来解决这个问题 – 5566 2011-08-11 02:37:47