图谱API不会显示配置文件Feed

时间:2011-07-12 16:01:04

标签: php facebook-graph-api

我正在使用facebook API来使用图谱API来获取墙上的Feed。

<?php
    require_once('facebook.php');

//  Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
    'appId' => '188687744521977',
    'secret' => 'c2c3692845602812f473436d1da95014',
    'cookie' => true
));

//  Get User ID
$user = $facebook->getUser();

//  We may or may not have this data based on whether the user is logged in.
//  If we have a $user id here, it means we know the user is logged into
//  Facebook, but we don't know if the access token is valid. An access
//  token is invalid if the user logged out of Facebook.

if($user) 
{
    try 
    {
//          Proceed knowing you have a logged in user who's authenticated.
        $access_token = $_SESSION['fb_188687744521977_access_token'];
            $user_profile = $facebook->api('/me');
            $likes = $facebook->api('/me?fields=feed,likes');
        $friends = $facebook->api('/me/friends');
        $feed = 'https://graph.facebook.com/me/feed?  access_token='.$access_token.'';
    } catch (FacebookApiException $e) 
    {
        error_log($e);
        $user = null;
    }
}

//  Login or logout url will be needed depending on current user state.
if($user) 
{
    $logoutUrl = $facebook->getLogoutUrl();
} else 
{
    $loginUrl = $facebook->getLoginUrl();
}

//  Save the user's info as variables
$full_name = $user_profile['name'];
$first_name = $user_profile['first_name'];
$last_name = $user_profile['last_name'];

$relationship = $user_profile['relationship_status'];
$partner_id = $user_profile['significant_other_id'];

$id = $user_profile['id'];
$link = $user_profile['link'];

function get_url($url)
{
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        $tmp = curl_exec($ch);
        curl_close($ch);
        return $tmp;
}

$wall = get_url($feed);
print_r(json_decode($wall, true));
?>

但是,会显示一个空数组。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您应该明确地尝试找到更好的解决方案来处理访问令牌!你在哪里设置这个$_SESSION['fb_..._access_token']?谁说188687744521977始终是登录用户的用户ID?为什么您的Feed网址中有空格?

您要做的第一件事就是删除json_decode()var_dump() $wall。我认为您的访问令牌无效,也许您还获得了401 Unauthorized或403 Forbidden响应?