在 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:在一个请求中获取更大的图片
在 Facebook Graph API 2.0 中获取用户名字段