5

我通过 PHP SDK 和工作登录与 Facebook 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',
  ));
}

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

4

3 回答 3

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

这应该是登录网址

<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>

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

  $loginUrl = $facebook->getLoginUrl(array(
   'scope' => 'email, user_activities '
 ));

如需其他权限,请访问:

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

于 2012-03-28T09:32:10.343 回答
3

这应该适用于 PHP SDK:

header('Location:'.$facebook->getLoginUrl(array(
    'scope' => 'email'
)));
exit;
于 2011-11-23T11:59:08.640 回答
1

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

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

echo '<script>top.location="'.$loginUrl.'";</script>';
die();

编辑

这就是过去的做法,现在 facebook 已经改变了他们的 API:s。有关更当前的解决方案,请查看有关此问题的其他答案。

于 2011-04-16T21:45:02.077 回答