Php 如何使用facebook api获取电子邮件?

Php 如何使用facebook api获取电子邮件?,php,facebook,Php,Facebook,我正在使用,但我不知道如何从用户那里获取电子邮件。我知道你必须得到用户的特别许可,但我不知道怎么做 我可以从用户那里获得公共数据,但这不是我所需要的。我唯一需要的就是电子邮件 我想这是因为这句话: $me = $facebook->api('/me'); 我已经阅读了文档,但我仍然不知道如何才能收到电子邮件。如何使用facebook api从登录我的网站的用户那里获取电子邮件?您首先需要向用户请求扩展权限“电子邮件”。您可以通过调用FB.login()使用FB JS SDK来实现这一点,

我正在使用,但我不知道如何从用户那里获取电子邮件。我知道你必须得到用户的特别许可,但我不知道怎么做

我可以从用户那里获得公共数据,但这不是我所需要的。我唯一需要的就是电子邮件

我想这是因为这句话:

$me = $facebook->api('/me');

我已经阅读了文档,但我仍然不知道如何才能收到电子邮件。如何使用facebook api从登录我的网站的用户那里获取电子邮件?

您首先需要向用户请求扩展权限“电子邮件”。您可以通过调用FB.login()使用FB JS SDK来实现这一点,或者通过调用getLoginUrl()重定向浏览器来实现PHP FB SDK

FB PHP SDK方法:

$login_url = $Facebook->getLoginUrl(array(
    'canvas'    => 1,
    'fbconnect' => 0,
    'req_perms' => 'email'
));

echo '<script type="text/javascript">top.location.href = "'.$login_url.'";</script>';
exit();

我必须将画布更改为0,将fbconnect更改为1,否则我将无法返回到我的网页。我只收到一封来自facebook的匿名邮件,这不是我想要的。我想要用户真正的电子邮件。你知道我如何解决这个问题吗?我现在看到你可以选择自己的电子邮件或匿名电子邮件,同时选择接受或拒绝应用程序。我的默认选项是A名称tho,如何将其更改为默认选项,让用户发送电子邮件?StackExchange将用户的电子邮件设置为默认设置。我给您的示例是一个Iframe画布应用程序。不幸的是,您无法设置默认的电子邮件选择(在用户的电子邮件或facebook代理电子邮件之间),这是由facebook控制的。我查看了我的应用程序,它们都默认为用户的电子邮件地址-因此我假设这是FB的某种保护,使开发人员在拥有“经验证”的应用程序之前更难收集电子邮件地址?
$login_url = $Facebook->getLoginUrl(array(
    'canvas'    => 1,
    'fbconnect' => 0,
    'req_perms' => 'email'
));

echo '<script type="text/javascript">top.location.href = "'.$login_url.'";</script>';
exit();
$me = $facebook->api('/me?fields=email');