Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php FacebookSDK照片返回空白数组_Php_Facebook - Fatal编程技术网

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']);