首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Facebook Graph API,如何获取用户电子邮件?

Facebook Graph API,如何获取用户电子邮件?
EN

Stack Overflow用户
提问于 2010-09-01 01:42:02
回答 10查看 356K关注 0票数 90

我正在使用Graph API,但我不知道如何获取登录用户的电子邮件地址。

Graph简介指出:“Graph API可以提供对所有基本帐户注册数据的访问,您通常会在站点的注册表单中请求这些数据,包括名称、电子邮件地址、头像和生日。”

一切都很好,但是我如何访问这些信息呢?

这就是我到目前为止所知道的:

代码语言:javascript
复制
$json = $facebook->api('/me');

$first = $json['first_name']; // gets first name
$last = $json['last_name'];
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-09-01 01:55:15

获取用户电子邮件地址的唯一方法是请求电子邮件字段的扩展权限。用户必须允许您查看此内容,并且您无法获取用户朋友的电子邮件地址。

http://developers.facebook.com/docs/authentication/permissions

如果您正在使用Facebook connect,则可以通过在调用Auth对话框的get字符串中传递scope=email来执行此操作。

我建议使用SDK而不是file_get_contents,因为这样可以更容易地执行Oauth身份验证。

票数 80
EN

Stack Overflow用户

发布于 2015-08-01 23:17:09

代码语言:javascript
复制
// Facebook SDK v5 for PHP
// https://developers.facebook.com/docs/php/gettingstarted/5.0.0

$fb = new Facebook\Facebook([
  'app_id' => '{app-id}',
  'app_secret' => '{app-secret}',
  'default_graph_version' => 'v2.4',
]);

$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
$response = $fb->get('/me?locale=en_US&fields=name,email');
$userNode = $response->getGraphUser();
var_dump(
    $userNode->getField('email'), $userNode['email']
);
票数 62
EN

Stack Overflow用户

发布于 2011-12-02 15:28:39

在function getLoginUrl()中打开base_facebook.php Add Access_token

代码语言:javascript
复制
array_merge(array(
                  'access_token' => $this->getAccessToken(),
                  'client_id' => $this->getAppId(),
                  'redirect_uri' => $currentUrl, // possibly overwritten
                  'state' => $this->state),
             $params);

并使用电子邮件权限的范围

代码语言:javascript
复制
if ($user) {
   echo $logoutUrl = $facebook->getLogoutUrl();
} else {
   echo $loginUrl = $facebook->getLoginUrl(array('scope' => 'email,read_stream'));
}
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3611682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档