Facebook GRAPH API + PHP SDK:获取大用户图片的URL

|| 我正在尝试将Facebook应用程序(嵌入小型多人Flash游戏的PHP脚本)从旧的FBML重写为新的iFrame类型,并且可以完成以下工作:
<?php

require_once(\'facebook.php\');

define(\'FB_API_ID\', \'182820975103876\');
define(\'FB_AUTH_SECRET\', \'XXX\');

$facebook = new Facebook(array(
            \'appId\'  => FB_API_ID,
            \'secret\' => FB_AUTH_SECRET,
            \'cookie\' => true,
            ));

if (! $facebook->getSession()) {
    printf(\'<script type=\"text/javascript\">top.location.href=\"%s\";</script>\',
        $facebook->getLoginUrl(
                array(\'canvas\'    => 1,
                      \'fbconnect\' => 0,
                      #\'req_perms\' => \'user_location\',
        )));

} else {
    try {
        $me = $facebook->api(\'/me\');

        $first_name = $me[\'first_name\'];
        $city       = $me[\'location\'][\'name\'];
        $female     = ($me[\'gender\'] != \'male\');
        $fields     = $facebook->api(\'/me\', array(
                          \'fields\' => \'picture\',
                          \'type\'   => \'large\'
                      ));
        $avatar     = $fields[\'picture\'];

        # then I print swf tag and pass first_name;city;avatar to it

    } catch (FacebookApiException $e) {
        print(\'Error: \' . $e);
    }
}

?>
但我认为获取用户个人资料图片的调用导致我的脚本执行第二次CURL提取,这可能是可以避免的吗?而且我也想使用新的GRAPH API,而不要使用旧的REST API-但我不确定如何重写该调用(并且我需要获得大而直接的用户图片)。     
已邀请:
如果您知道用户标识,请使用:
<img src=\"http://graph.facebook.com/<UID>/picture?type=large\" />
还要注意,您可以使用该URL通过cURL检索内容。如有必要,您还可以使用cURL跟随重定向并获取最终URL。
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 
    \"http://graph.facebook.com/<UID>/picture?type=large\");

curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);

$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

curl_close($ch);

var_dump($url);
    
您可以使用FQL,而不是进行两次API调用:
$result = $facebook->api(array(
    \'method\'=>\'fql.query\',
    \'query\'=>\'SELECT uid,name,first_name,current_location,sex,pic_big FROM user WHERE uid=me()\'
));
确保
fql.query
不是图方法,但仍然是使用FQL的方法。     

要回复问题请先登录注册