图谱API:如何获取当前用户的信息?

时间:2010-10-23 22:59:51

标签: facebook facebook-graph-api

我正在尝试在PHP脚本(id和name)中获取有关用户的一些基本信息。

我尝试过以下方法:

$retrieve = curl_init("https://graph.facebook.com/me?access_token=$accesstoken");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($retrieve, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($retrieve);
curl_close($retrieve);

$user = json_decode(file_get_contents(
         "https://graph.facebook.com/me?access_token=$accesstoken"))->me;

cURL方法(前者)只是超时了。 file_get_contents(后者)方法根本不返回任何内容......

可能导致这种情况的原因是什么?我正确使用cURL吗?

2 个答案:

答案 0 :(得分:1)

对于图形api,您可以使用图形api方法而不是curl 以下代码获取当前用户的信息

define('FACEBOOK_APP_ID', 'Your API ID');
define('FACEBOOK_SECRET', 'YOUR SECRET');
function get_facebook_cookie($app_id, $application_secret)
{
    $args = array();
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
    ksort($args);
    $payload = '';
    foreach ($args as $key => $value)
    {
        if ($key != 'sig')
        {
            $payload .= $key . '=' . $value;
        }
    }
    if (md5($payload . $application_secret) != $args['sig'])
    {
        return null;
    }
    return $args;
}
$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);
$user=json_decode(file_get_contents('https://graph.facebook.com/me?access_token='.$cookie['access_token']));

很容易

答案 1 :(得分:-1)

Facebook不会让你使用curl。他们有这个api。

复制您的链接并将其粘贴到浏览器中。它会工作。在Mozilla中,您将在浏览器中看到结果,IE会将结果保存为文件。所以它不是关于无效的访问令牌等。这只是因为Facebook没有响应你的查询,当它不是来自网络浏览器,而是来自Facebook API。

这是对Facebook的相关PHP调用。

$attachment =  array('access_token' => $access_token);
$result=$facebook->api('/me', 'GET', $attachment);
$id = $result['id'];
$name=$result['name'];