我创建了一个应用程序。有表格,其中有两个字段的电子邮件和名称。有按钮,您可以使用Facebook登录,然后它将获得用户名和电子邮件。
我尝试了很多方法。我可以获得姓名和其他详细信息,但我无法收到用户电子邮件。我也使用fql来获取电子邮件,但没有得到。下面是代码。我想通过PHP来解决这个问题。
$fql = 'SELECT contact_email FROM user WHERE uid = '.$user;
$res = $facebook->api(array('method' => 'fql.query',
'query' => $fql));
任何人都可以告诉我如何收到电子邮件。任何帮助都会很明显。
答案 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相关文档。