在 Facebook Graph API 中,获取用户电子邮件地址和性别的 API 调用是啥?

Posted

技术标签:

【中文标题】在 Facebook Graph API 中,获取用户电子邮件地址和性别的 API 调用是啥?【英文标题】:In Facebook Graph API, what are the API calls to get a user's email address and gender?在 Facebook Graph API 中,获取用户电子邮件地址和性别的 API 调用是什么? 【发布时间】:2014-12-01 02:22:07 【问题描述】:

借助以下链接,我正在使用 Graph API 和 Facebook SDK for php:https://developers.facebook.com/docs/php/howto/profilewithgraphapi/4.0.0。这是代码:

use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;

if($session) 

  try 

    $user_profile = (new FacebookRequest(
      $session, 'GET', '/me'
    ))->execute()->getGraphObject(GraphUser::className());

    echo "Name: " . $user_profile->getName();

   catch(FacebookRequestException $e) 

    echo "Exception occured, code: " . $e->getCode();
    echo " with message: " . $e->getMessage();

     


我现在可以通过使用user_profile->getName(); 获取用户的姓名,我还可以根据此处的 API 调用获取他/她的名字、姓氏、中间名等:https://developers.facebook.com/docs/php/GraphObject/#user-instance-methods。我知道可以获取用户的电子邮件地址和性别,但在上一个链接中我没有找到任何 API 调用来获取此信息。

对于 PHP 版 Facebook SDK,获取用户电子邮件地址和性别的 API 调用是什么?

非常感谢。

【问题讨论】:

【参考方案1】:

看看

https://developers.facebook.com/docs/graph-api/reference/v2.2/user#fields https://developers.facebook.com/docs/graph-api/using-graph-api/v2.2#fields

了解您可以为用户对象查询哪些字段和边。在你的情况下,那应该是

/me?fields=id,gender,email

new FacebookRequest(
  $session, 'GET', '/me?fields=id,gender,email'
)

请注意,您需要user_email 权限才能请求email 字段。

要获取特定字段,请使用https://developers.facebook.com/docs/php/GraphObject/#getproperty 中所述的getProperty() 方法

echo $user_profile->getProperty('gender');

【讨论】:

在我的应用程序的“已批准项目”部分中,它说明了登录权限:“电子邮件:提供对该人的主要电子邮件地址的访问权限。默认情况下,此权限已获得批准。”和“public_profile:提供访问一个人的基本信息,包括名字、姓氏、头像、性别和年龄范围。默认情况下,此权限是批准的。”因此,我认为我默认拥有电子邮件和性别的权限。所以我的问题是,user_email 权限是什么意思? 我的另一个问题是,获取电子邮件和性别的 API 调用是什么(例如,$user_profile->getName())?我在任何地方都找不到。 是的,user_email 权限默认授予。但是当您调用登录链接时,您需要在登录权限范围内请求它。更新了我的答案,但它已经在文档中了!

以上是关于在 Facebook Graph API 中,获取用户电子邮件地址和性别的 API 调用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Graph API:在一个请求中获取更大的图片

使用 graph Api 获取 Facebook 页面事件

在 Facebook Graph API 2.0 中获取用户名字段

Facebook Graph API 获取墙帖的方形图片

如何使用 Graph API 获取家乡的 facebook 好友列表?

在 Facebook Graph API 中,获取用户电子邮件地址和性别的 API 调用是啥?