如何从Facebook收到电子邮件

时间:2013-04-28 11:13:23

标签: php facebook facebook-fql facebook-login

我创建了一个应用程序。有表格,其中有两个字段的电子邮件和名称。有按钮,您可以使用Facebook登录,然后它将获得用户名和电子邮件。

我尝试了很多方法。我可以获得姓名和其他详细信息,但我无法收到用户电子邮件。我也使用fql来获取电子邮件,但没有得到。下面是代码。我想通过PHP来解决这个问题。

$fql = 'SELECT contact_email FROM user WHERE uid = '.$user;
$res = $facebook->api(array('method' => 'fql.query',
                            'query' => $fql));

任何人都可以告诉我如何收到电子邮件。任何帮助都会很明显。

2 个答案:

答案 0 :(得分:3)

facebook->getLoginUrl与电子邮件权限一起使用,请参阅https://developers.facebook.com/docs/reference/login/email-permissions/scope' => 'email'

<强> facebook.php

<?
error_reporting(E_ALL);
ini_set('display_errors','on');
require 'facebook-php-sdk-master/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => <YOUR AppId>,
  'secret' => <YOUR APPsecret>,
));

$applicationurl = 'http://testdrive.nl/facebook.php';

// Get User ID
$user = $facebook->getUser();

if(empty($user))
{
    $params = array(
  'scope' => 'email',
  'redirect_uri' => $applicationurl
   );   

$loginUrl = $facebook->getLoginUrl($params);
header('Location: ' . $loginUrl ."\r\n");
exit;
}   

$fql = 'SELECT contact_email FROM user WHERE uid = '.$user;
$res = $facebook->api(array('method' => 'fql.query',
                            'query' => $fql));
//var_dump($res);
echo $res[0]['contact_email'];

答案 1 :(得分:1)

您需要获得用户的额外许可才能获取其电子邮件地址。此权限恰当地命名为email

根据您的身份验证方法和用户登录,您必须将此email权限添加到scope参数中。此scope参数是您向用户请求其他权限的位置。您可以在用户安装应用程序时请求这些权限,但您也可以在用户安装应用程序后请求权限。

有关电子邮件权限的详细信息,请查看this link相关文档。