Actionscript 3 使用批量加载程序加载Facebook个人资料图像

Actionscript 3 使用批量加载程序加载Facebook个人资料图像,actionscript-3,facebook-graph-api,bulkloader,Actionscript 3,Facebook Graph Api,Bulkloader,我必须在我的flash Facebook应用程序(iframe)中加载用户的个人资料图像。但是加载它时有一些不相似的地方。我的加载代码是: var context1:LoaderContext = new LoaderContext(); var req:URLRequest = new URLRequest("http://graph.facebook.com/" + uidvar + "/picture?type=large"); Security.loadPolicyFile("http

我必须在我的flash Facebook应用程序(iframe)中加载用户的个人资料图像。但是加载它时有一些不相似的地方。我的加载代码是:

var context1:LoaderContext = new LoaderContext();
var req:URLRequest = new URLRequest("http://graph.facebook.com/" + uidvar + "/picture?type=large");

Security.loadPolicyFile("http://graph.facebook.com/crossdomain.xml");
Security.loadPolicyFile("http://profile.ak.fbcdn.net/crossdomain.xml");
Security.allowDomain("*");
Security.allowInsecureDomain("*");

context1.checkPolicyFile = true;
loader.add(req, {id:"profilephoto", context:context1}); // I defined the "loader" as a BulkLoader object before.
loader.start();
但是当我在Firefox中调试swf时,它说

错误#2044:未处理的安全性错误:。text=错误#2048:安全性 沙盒冲突:MYSWFURL无法从FACEBOOK IMG加载数据 网址


对我来说,一切都是完美的,但我得到了这个错误。为什么?

您的bulkloader是否向url添加访问令牌?它是通过Facebook进行身份验证所必需的。我建议您使用:而不是自己构建api包装器。我使用的是facebook actionscript api。但是我不知道BulkLoader是否正在添加访问令牌。如果您使用的是Facebook API,那么应该使用以下方法:Facebook.init(Facebook\u app\u id,callback)。它获取一个访问令牌并从此点开始使用它。此外,您应该使用Facebook.getImageUrl(url\u to\u picture,options)获取图像的url。通过调用getImageUrl而不是“graph.facebook.com”获得的url,您应该能够使您的代码工作错误消失,但现在我得到另一个错误,我的
loader.getBitmap(“profilephoto”)返回null。我的新加载代码是:
loader.add(Facebook.getImageUrl(String(response.id),“large”),{id:“profilephoto”})我假设您正在正确使用bulkloader call start()并实现回调。我只能建议尝试使用经典的URLLoader,而不是bulkloader,看看它是否有效。