【问题标题】:Issues getting my profile picture in a Flash application在 Flash 应用程序中获取我的个人资料图片时出现问题
【发布时间】:2012-02-19 01:08:04
【问题描述】:

我有一个 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 在负载中(我应该改写它说它会因为任何用户登录到 Facebook,而不仅仅是我)。

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

【问题讨论】:

    标签: php facebook flash profile image


    【解决方案1】:
    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);
    } 
    

    【讨论】:

    • 这在 Facebook 上不起作用——如果我从 Flash Pro 运行它,它可以在我的本地客户端上运行,但是当我上传到 Facebook 时它会冻结。我之前遇到过这个问题,这就是为什么我最终选择了上面发布的代码。您提供的代码给出了来自 Facebook 的“安全错误 2122”。我找到的代码是我使用一些花哨的 Google 搜索找到的 2122 错误的解决方案。
    • 转到文件 -> 发布设置 -> Flash。然后将“本地播放”设置为“仅访问网络”。
    • 艾敏,“本地播放”设置真的能影响“上传到 Facebook”的 swf 吗?
    • 这不起作用 - 仍然无法加载我的个人资料图片。
    • 有没有办法在 Graph API 之外访问我的个人资料图片?
    猜你喜欢
    • 2012-02-25
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多