我正在使用php-facebook sdk实现facebook登录。但我没有从Facebook上获取用户的电子邮件地址,在Facebook上新建了应用程序。
根据附件图片,我们对电子邮件进行了以下权限设置的更改。当我预览auth对话框时,facebook在对话框中显示电子邮件权限。但是在运行网站时,auth对话框没有显示电子邮件权限,也没有提供返回的电子邮件。
提前感谢您的帮助。
答案 0 :(得分:2)
在应用设置中设置范围(权限)
也请参考:
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxx',
));
$facebookUser = $facebook->getUser();
$fbLogoutUrl = $facebook->getLogoutUrl();
if ($facebookUser) {
try {
$fbUserProfile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
if (!empty($fbUserProfile)) {
$fbUserId = $fbUserProfile ['id'];
$fbUserEmail = $fbUserProfile ['email'];
}
} else {
$fbLoginUrl = $facebook->getLoginUrl(array('scope' => 'email,publish_stream,user_photos,photo_upload,offline_access'));
header("Location: " . $fbLoginUrl);
}
问候:TechNew.In
答案 1 :(得分:1)
这不是如何配置与PHP SDK一起使用的权限。
这些设置仅适用于App Center(已删除经过身份验证的引荐)
这是您可以在SDK中添加权限的一种方式,
$params = array(
'scope' => 'email',
'redirect_uri' => 'https://www.myapp.com/post_login_page'
);
$loginUrl = $facebook->getLoginUrl($params);
详见:http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/
并且:https://developers.facebook.com/docs/opengraph/authentication/#referrals