Php Facebook connect API:获取用户电子邮件

Php Facebook connect API:获取用户电子邮件,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我在一个php网站上工作,在那里我集成了一个Facebook Connect API,该API启用了Facebook登录按钮 获取用户详细信息的代码如下所示: <?php session_start(); // added in v4.0.0 require_once 'autoload.php'; use Facebook\FacebookSession; use Facebook\FacebookRedirectLoginHelper;

我在一个php网站上工作,在那里我集成了一个Facebook Connect API,该API启用了Facebook登录按钮

获取用户详细信息的代码如下所示:

<?php
    session_start();

    // added in v4.0.0
    require_once 'autoload.php';
    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
    use Facebook\GraphUser;
    use Facebook\Entities\AccessToken;
    use Facebook\HttpClients\FacebookCurlHttpClient;
    use Facebook\HttpClients\FacebookHttpable;

    // init app with app id and secret
    $appID = 'app id';
    $appSecret = 'app secret code';
    FacebookSession::setDefaultApplication( $appID, $appSecret);

    // login helper with redirect_uri
    $helper = new FacebookRedirectLoginHelper('http://localhost/test/facebook_new/fbconfig.php' );

    try {
        $session = $helper->getSessionFromRedirect();
    } catch( FacebookRequestException $ex ) {
        // When Facebook returns an error
    } catch( Exception $ex ) {
        // When validation fails or other local issues
    }

    // see if we have a session
    if ( isset( $session ) ) {

        // graph api request for user data
        $request = new FacebookRequest( $session, 'GET', '/me' );
        $response = $request->execute();

        // get response
        $profile = $response->getGraphObject('Facebook\GraphUser');

        var_dump($profile);

    } else {
        $loginUrl = $helper->getLoginUrl();
        header("Location: ".$loginUrl);
    }
?>

执行此代码后,
var\u dump($profile)
仅显示
用户Facebook ID
及其
全名,如下图所示:

我想要的是电子邮件。这封电子邮件可以通过
'Facebook\GraphUser'
访问,但我真的不知道我的代码有什么问题


请帮助我解决此问题

Facebook用户在其设置中可以将其电子邮件设置为私人或公共。这可能是它不会为您显示的原因。

Facebook用户在其设置中可以将其电子邮件设置为私人或公共。这可能是它没有为您显示的原因。

$request=newfacebookrequest($session,'GET','/me?fields=name,email')

它被称为“声明性字段”,您必须指定要从Graph API的v2.4中返回的字段


另外,确保用户已获得电子邮件权限的授权。

$request=newfacebookrequest($session,'GET','/me?fields=name,email')

它被称为“声明性字段”,您必须指定要从Graph API的v2.4中返回的字段

此外,请确保用户已获得
电子邮件
权限的授权