Facebook登录PHP(不接收电子邮件)
我已经读了很多关于这方面的话题,我的电子邮件设置为primary,但我无法用Facebook登录SDK检索它,我也在使用scope,但仍然没有电子邮件 我只是不知道我现在应该在哪里更改包含电子邮件范围的行Facebook登录PHP(不接收电子邮件),php,facebook,email,facebook-php-sdk,Php,Facebook,Email,Facebook Php Sdk,我已经读了很多关于这方面的话题,我的电子邮件设置为primary,但我无法用Facebook登录SDK检索它,我也在使用scope,但仍然没有电子邮件 我只是不知道我现在应该在哪里更改包含电子邮件范围的行 if ( isset( $session ) ) { // graph api request for user data $request = new FacebookRequest( $session, 'GET', '/me?scope=email' ); $response
if ( isset( $session ) ) {
// graph api request for user data
$request = new FacebookRequest( $session, 'GET', '/me?scope=email' );
$response = $request->execute();
// get response
$graphObject = $response->getGraphObject();
var_dump($graphObject);
$fbid = $graphObject->getProperty('id'); // To Get Facebook ID
$fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name
$femail = $graphObject->getProperty('email'); // To Get Facebook email ID
/* ---- Session Variables -----*/
$_SESSION['FBID'] = $fbid;
$_SESSION['FULLNAME'] = $fbfullname;
$_SESSION['EMAIL'] = $femail;
/* ---- header location after session ----*/
header("Location: /ico/");
} else {
$loginUrl = $helper->getLoginUrl(array('scope' => 'email'));
header("Location: ".$loginUrl);
}
作用域用于登录,您需要使用fields参数:
$request = new FacebookRequest($session, 'GET', '/me?fields=name,email');
一些可能的原因:
重新请求
方法但它是用于登录的,就像用户登录和服务器端不接收来自facebook的电子邮件一样,只是用你的线路进行了测试,仍然是你误解的。scope参数仅用于登录。如果以后要从graph api请求数据,则必须使用fields参数。你的代码肯定错了。如果您仍然没有收到电子邮件,请确保在登录对话框中询问您电子邮件权限。另外,请确保该电子邮件已被批准,并且用户实际使用该电子邮件登录。不,我仍然有相同的问题。。。只是不明白为什么我不在应用程序设置中接收电子邮件一切正常请求电子邮件..在右上角选择应用程序后,在api资源管理器中尝试api调用。在令牌调试器中调试访问令牌。做一些挖掘。