使用Facebook PHP SDK获取用户电子邮件的权限

Jos*_*eph 5 php facebook-graph-api facebook-php-sdk

我通过PHP SDK和工作登录与facebok api进行了工作集成.现在我尝试使用以下代码添加电子邮件权限,但在尝试连接/登录应用程序时,不会请求电子邮件.

// login or logout url will be needed depending on current user state.
if ($me) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array(
    'req_perms' => 'email',
  ));
}
Run Code Online (Sandbox Code Playgroud)

错误必须在此代码中,因为其他一切正常.谢谢!

Hal*_*oğa 7

$loginUrl = $facebook->getLoginUrl(array(
   'scope' => 'email'
));
Run Code Online (Sandbox Code Playgroud)

这应该是登录URL

<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
Run Code Online (Sandbox Code Playgroud)

还必须将附加权限传递给范围变量

  $loginUrl = $facebook->getLoginUrl(array(
   'scope' => 'email, user_activities '
 ));
Run Code Online (Sandbox Code Playgroud)

有关其他权限,请访问:

http://developers.facebook.com/docs/authentication/permissions/#user_friends_perms


fre*_*rik 1

删除“email”后面的逗号并将浏览器重定向到 $loginUrl,如下所示:

$loginUrl = $facebook->getLoginUrl(
  array(
    'req_perms' => 'email'
  )
);

echo '<script>top.location="'.$loginUrl.'";</script>';
die();
Run Code Online (Sandbox Code Playgroud)

编辑

这就是当年的做法,现在 facebook 改变了他们的 API:s。如需最新的解决方案,请查看此问题的其他答案。