我使用脸谱图SDK访问Facebook用户的专辑图片,个人资料图片,朋友计数和其他用户的基本信息。但它做的很奇怪,它只显示API帐户所有者帐户的相册,而不是显示Facebook的任何用户登录。 我正在使用以下代码,请有人帮助我并指导我出错的地方。 非常感谢你。
include_once(BASE_DIR.'/utils/facebook/autoload.php');
$fb = new Facebook\Facebook(array(
'app_id' => $fb_app_id,
'app_secret' => $fb_app_secret,
));
$helper = $fb->getRedirectLoginHelper();
foreach ($_SESSION as $k=>$v) {
if(strpos($k, "FBRLH_")!==FALSE) {
if(!setcookie($k, $v)) {
} else {
$_COOKIE[$k]=$v;
}
}
}
$permissions = array('email', 'user_photos', 'user_friends', 'read_custom_friendlists', 'user_status');
$loginUrl = htmlspecialchars($helper->getLoginUrl(SITE_URL . '/sign-up.php?do=fb', $permissions));
$_SESSION['fui'] = array();
foreach ($_COOKIE as $k=>$v) {
if(strpos($k, "FBRLH_")!==FALSE) {
$_SESSION[$k]=$v;
}
}
if( isset($_GET['do']) && $_GET['do'] == 'fb' ){
foreach ($_COOKIE as $k=>$v) {
if(strpos($k, "FBRLH_")!==FALSE) {
$_SESSION[$k]=$v;
}
}
try {
$accessToken = $helper->getAccessToken();
$response = $fb->get('/me?fields=id,name,email,first_name,last_name,albums', $accessToken);
$fb_user_info = $response->getGraphUser();
$fb_first_name = $fb_user_info->getProperty('first_name');
$fb_last_name = $fb_user_info->getProperty('last_name');
$fb_user_id = $fb_user_info->getProperty('id');
$fb_user_email = $fb_user_info->getProperty('email');
$albums = $fb->get('/me/albums', $accessToken)->getGraphEdge()->asArray();
$user_friends = $fb->get('/me/friends?fields=id,name,gender', $accessToken)->getGraphEdge();
$user_fb_photos = array();
foreach( $albums as $album_id => $album_data ){
$user_fb_photos[$album_data['id']]['name'] = $album_data['name'];
$fbPictures = $fb->get("/".$album_data['id']."/photos?fields=picture&limit=12", $accessToken)->getGraphEdge()->asArray();
$user_fb_photos[$album_data['id']]['data'] = $fbPictures;
}
}
}
答案 0 :(得分:0)
在文档中了解登录审核:https://developers.facebook.com/docs/facebook-login/review
大多数权限仅适用于在App中具有角色的用户。如果您想公开您的应用程序,您必须发送这些权限以供审核。在使用App Admin / Developer进行授权时,您实际上应该收到一个非常明显的红色警告。