Facebook不给电子邮件

时间:2012-10-17 12:24:51

标签: php facebook facebook-graph-api

我正在使用php-facebook sdk实现facebook登录。但我没有从Facebook上获取用户的电子邮件地址,在Facebook上新建了应用程序。

here is screenshot on the permissions setttings page

this is preview of auth dialog

this is actual auth dialog rendering

根据附件图片,我们对电子邮件进行了以下权限设置的更改。当我预览auth对话框时,facebook在对话框中显示电子邮件权限。但是在运行网站时,auth对话框没有显示电子邮件权限,也没有提供返回的电子邮件。

提前感谢您的帮助。

2 个答案:

答案 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