在Flash应用程序中获取我的个人资料照片的问题

时间:2012-01-25 20:18:40

标签: php facebook flash profile image

我有一个PHP脚本,使用以下内容返回给我(和我的朋友)个人资料图片:

http://graph.facebook.com/".$ID."/picture?type=large 其中$ ID是使用PHP API检索的ID。然后我使用以下内容在我的应用程序中加载图像:

public function LoadProfile()
{
    loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onUrlLoaded);
    loader.load(new URLRequest(ImageURL));
    //ImageURL is the URL provided by the PHP Script
    // which is the 'http://graph.facebook.com/XXXX/picture?type=large'
}
private function onUrlLoaded(event:Event)
{           
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onUrlLoaded);

    var path:String = LoaderInfo(event.target).url;

    loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onReallyComplete);
    var lc:LoaderContext = new LoaderContext(true);
    lc.checkPolicyFile = true;
    loader.load(new URLRequest(path), lc);
}
private function onReallyComplete(event:Event)
{
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onReallyComplete);
}  

这适用于我的所有朋友,但由于某些原因不适合我。我得到了以下关于朋友形象的一般地址:

http://profile.ak.fbcdn.net/hprofile-ak-snc4/370825_524761447_653077984_n.jpg

但对我来说,我只是得到了

http://profile.ak.fbcdn.net

这是一些随意的人......不是我......

我已经多次验证从PHP发回的ID实际上是我的ID,并且我已经将加载功能之前跟踪的地址复制/粘贴到浏览器中,我得到了正确的个人资料图片,但是在那里的某个地方,它在我的ID加载中只有我的ID,而且只有我的ID在加载中(我应该重新说明它,因为用户登录到Facebook,而不仅仅是我。)

有什么想法吗?或者有人知道另一种获取我的个人资料照片的方法吗?

1 个答案:

答案 0 :(得分:0)

public function loadProfile():void
{
    loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_completeHandler);
    loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loader_securityErrorHandler);
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_ioErrorHandler);
    loader.load(new URLRequest(_imageURL));
}

private function loader_securityErrorHandler(event:SecurityErrorEvent):void
{
    trace(event.toString());
}

private function loader_ioErrorHandler(event:IOErrorEvent):void
{
    trace(event.toString());
}

private function loader_completeHandler(event:Event):void
{
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loader_completeHandler);
    loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, loader_securityErrorHandler);
    loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loader_ioErrorHandler);

    addChild(loader);
}