Php Facebook connect API:获取用户电子邮件
我在一个php网站上工作,在那里我集成了一个Facebook Connect API,该API启用了Facebook登录按钮 获取用户详细信息的代码如下所示: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
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中返回的字段
此外,请确保用户已获得电子邮件
权限的授权