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

use*_*893 0 php facebook facebook-graph-api facebook-php-sdk

我借助以下链接使用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();

  }   

}
Run Code Online (Sandbox Code Playgroud)

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

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

非常感谢你.

Tob*_*obi 5

看一下

获取可以查询用户对象的字段和边的概述.在你的情况下,应该是

/me?fields=id,gender,email
Run Code Online (Sandbox Code Playgroud)

要么

new FacebookRequest(
  $session, 'GET', '/me?fields=id,gender,email'
)
Run Code Online (Sandbox Code Playgroud)

请注意,您需要获得user_email许可才能请求该email字段.

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

echo $user_profile->getProperty('gender');
Run Code Online (Sandbox Code Playgroud)

  • 是的,默认情况下授予`user_email`权限.但是,当您调用登录链接时,您需要在登录权限范围内请求它.更新了我的答案,但它已经在文档中了! (2认同)