我正在使用带有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');
答案 0 :(得分:2)
访问相册所需的user_photos
权限仅适用于在App中具有角色的用户,如果您未将其发送以供审核。它被称为"登录评论":https://developers.facebook.com/docs/facebook-login/review