2013-04-28 185 views
1

我已经创建了一个应用程序。有形式,其中有两个字段的电子邮件和名称。有按钮,使您可以使用Facebook登录,之后它将获得用户名和电子邮件。如何从Facebook获取电子邮件

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

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

任何人都可以告诉我如何获取电子邮件。任何帮助将是可观的。

回答

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']; 
+0

谢谢你,贝斯Jobsen为你的答案。现在我收到了邮件。再次感谢你。 – 2013-04-29 06:10:14

1

你需要需要来自用户的其他权限,以获得他们的电子邮件地址。此权限适当地命名为email

根据您的验证方法和用户登录,您必须将此email许可添加到您的scope参数中。这个scope参数是您向用户添加额外的请求权限的地方。您可以在用户安装您的应用程序时询问这些权限,但您也可以在用户安装您的应用程序后请求权限。

有关电子邮件许可的更多信息,请查阅this link以获取相关文档。

相关问题