为什么Facebook相册会返回一个空数组?

时间:2015-07-23 20:18:48

标签: php facebook-graph-api laravel facebook-sdk-4.0

我正在使用带有Laravel 4的Facebook SDK。我是否需要返回您通过Facebook登录的用户的图像。

当我使用Facebook上的APP管理员用户时,图像和相册会正常返回。

但是,当我尝试与管理员以外的任何用户执行此操作时,它会返回一个空数组。

我正在使用的代码如下:

$session = new FacebookSession(Session::get('facebook.token'));

$request = new FacebookRequest(
    $session,
    'GET',
    '/me/albums',
    ['fields' => 'name,photos.limit(20){source},id']
);

$response = $request->execute()->getGraphObject();

$imagesOfAllAlbums = [];

foreach ($response->asArray() as $albuns) {

   foreach ($albuns as $k => $album) {

        if (empty($album->photos)) continue;

        foreach ($album->photos as $images) {

            foreach ($images as $image) {

                if (empty($image->source)) continue;

                $imagesOfAllAlbums[$album->name][] = $image->source;
            }
        }
   }
}

count($imagesOfAllAlbums); // 0

如果是第一个例子,那么返回:

[
   'Nome do Album' => [
         'imagem_1.jpg',
         'imagem_2.jpg',
    ]
]

在代码的另一部分,我添加了user_photos的权限:

$urlFacebook = $helper->getLoginUrl([
                FacebookPermissions::USER_PHOTOS,
            ], 'v2.4');

1 个答案:

答案 0 :(得分:2)

访问相册所需的user_photos权限仅适用于在App中具有角色的用户,如果您未将其发送以供审核。它被称为"登录评论":https://developers.facebook.com/docs/facebook-login/review