2010-12-23 101 views
3

我使用这个检索用户的照片,但是始终print_r“萨空数组:的Facebook SDK照片返回空数组

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

if ($facebook->getSession()) { 
    try {   
     $profile = $facebook->api('/me/photos'); 
     echo "<pre>"; 
     print_r($profile); 

    } catch (FacebookApiException $e) { 
     echo $e->getMessage(); 
     exit(); 
    } 
} 
else { 
    $login_url = $facebook->getLoginUrl(array(
     'next' => 'XXX', 
     'cancel_url' => 'XXX', 
     'req_perms' => 'user_about_me,user_location,user_hometown,user_birthday,user_interests,user_likes,user_photos' 
    )); 

    echo '<a href="'.$login_url.'">Click here to login</a>'; 
} 

如果我使用:

$profile = $facebook->api('/me');

print_r的一个充满数据的数组,但不包含我正在寻找的照片信息。

任何想法?

回答

1

当您获得facebook会话时,您还会收到一个访问令牌。您必须使用它来生成有效的API请求。所有不是公共信息的东西都需要令牌。使用示例:

$session = $facebook->getSession(); 
// var_dump($session) to see it's content 
$facebook->api('/me/photos?access_token=' . $session['access_token']); 

如果这样做,您仍然会获得空数据,也许该用户没有任何照片。

祝你好运!

+0

SDK应该自动追加访问令牌,因此您不必担心这一点,但是当我使用此方法时,我得到的是同一个空数组。在API网站http://developers.facebook.com/docs/reference/api/user/如果我点击表格中的“照片”,我可以看到照片的JSON数据,这就像我的应用程序没有被授权查看尽管在登录时在我的“req_perms”中设置了“user_photos”?! – fire 2010-12-23 12:15:57

0

尝试https://graph.facebook.com/ $ album_id /照片

我不知道为什么我/照片不会返回空数组。可能它意味着别的东西,可能是我被贴上标签的照片或其他东西。对我来说,它也会一直返回空数组。但是当我尝试访问graph.facebook.com/$album_id/photos时,我得到了该专辑中所有照片的阵列..

2

我遇到了同样的问题。我的解决办法:

$facebook->api('/me/albums?access_token=' . $session['access_token']);

希望这不是太迟了!

相关问题