Php FacebookSDK照片返回空白数组
我使用它来检索用户照片,但它始终是一个空白数组:Php FacebookSDK照片返回空白数组,php,facebook,Php,Facebook,我使用它来检索用户照片,但它始终是一个空白数组: $facebook = new Facebook(array( 'appId' => 'XXX', 'secret' => 'XXX', 'cookie' => true, )); if ($facebook->getSession()) { try { $profile = $facebook->api('/me/photos'); ec
$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>';
}
$facebook=新的facebook(数组)(
“appId”=>“XXX”,
“机密”=>“XXX”,
“cookie”=>正确,
));
如果($facebook->getSession()){
试试{
$profile=$facebook->api('/me/photos');
回声“;
打印(配置文件);
}捕获(FacebookApiException$e){
echo$e->getMessage();
退出();
}
}
否则{
$login\u url=$facebook->getLoginUrl(数组)(
“下一个”=>“XXX”,
'取消url'=>'XXX',
'req_perms'=>'user_关于我、user_位置、user_家乡、user_生日、user_兴趣、user_喜欢、user_照片'
));
回声';
}
如果我使用:
$profile=$facebook->api('/me')代码>
它print\r
是一个充满数据的数组,但不是我正在寻找的照片信息
有什么想法吗?当你获得facebook会话时,你也会收到一个访问令牌。您必须使用它来发出有效的api请求。所有非公开信息都需要该令牌。用法示例:
如果这样做,您仍然得到空数据,可能该用户没有任何照片
祝你好运 试试$album\u id/照片
我不知道为什么我/照片返回空数组。可能是别的意思,可能是我被贴标签的照片或其他东西。对我来说,它始终返回空数组。但是当我尝试访问graph.facebook.com/$album_id/photos时,我得到了该相册中所有照片的数组。我遇到了同样的问题。我的解决方案:
$facebook->api('/me/albums?access_-token='.$session['access_-token'])代码>
希望不会太晚 SDK应该自动附加访问令牌,这样您就不必担心这个问题,但是当我使用这个方法时,我得到的是相同的空白数组。在API站点上,如果我点击表中的“照片”,我可以看到照片的JSON数据,因此我的应用程序没有被授权查看这些照片,尽管我登录时在我的“req_perms”中设置了“user_photos”?!不,sdk不会自动附加该令牌,这是您的工作。其次,当您单击该链接时,请注意facebook给了您一个访问令牌并将其添加到您的请求中;)是的,我注意到,如果我用我的应用程序中的访问令牌参数替换fb网站上的访问令牌参数,它也会输出一个空的JSON结构,因此我认为它的我的应用程序未经授权,但我不知道为什么在“req_perms”中设置了“user_photos”,那么不在相册中的照片呢?但你可能并不总是有相册
$session = $facebook->getSession();
// var_dump($session) to see it's content
$facebook->api('/me/photos?access_token=' . $session['access_token']);