1

我创建了一个应用程序。有表单,其中有两个字段电子邮件和姓名。有一个按钮,可让您使用 facebook 登录,然后它将获取用户名和电子邮件。

我尝试了很多方法。我可以获取姓名和其他详细信息,但无法获取用户电子邮件。我也使用 fql 来获取电子邮件,但没有得到。下面是代码。我想用 PHP 来检索它。

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

谁能告诉我如何获得电子邮件。任何帮助都将是可观的。

4

2 回答 2

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'];
于 2013-04-28T13:00:14.807 回答
1

您需要获得用户的额外许可才能获取他们的电子邮件地址。这个权限被恰当地命名为email.

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

有关电子邮件权限的更多信息,请查看相关文档的此链接。

于 2013-04-28T13:09:49.567 回答