Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook登录PHP(不接收电子邮件)_Php_Facebook_Email_Facebook Php Sdk - Fatal编程技术网

Facebook登录PHP(不接收电子邮件)

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

我已经读了很多关于这方面的话题,我的电子邮件设置为primary,但我无法用Facebook登录SDK检索它,我也在使用scope,但仍然没有电子邮件

我只是不知道我现在应该在哪里更改包含电子邮件范围的行

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');
一些可能的原因:

  • 帐户上没有电子邮件地址
  • 帐户上没有确认的电子邮件地址
  • 帐户上没有已验证的电子邮件地址
  • 用户输入了一个安全检查点,要求他们重新确认他们的电子邮件地址,但他们还没有这样做
  • 无法访问用户的电子邮件地址
  • 如果用户拒绝许可,FB将不会再次请求相同的许可。为此,您必须遵循
    重新请求
    方法
  • 在某些情况下,我还观察到,如果用户使用他们的电话号码登录,FB不会返回他们的电子邮件。然而,我并不完全确定这种情况。可能还有其他影响因素

  • 但它是用于登录的,就像用户登录和服务器端不接收来自facebook的电子邮件一样,只是用你的线路进行了测试,仍然是你误解的。scope参数仅用于登录。如果以后要从graph api请求数据,则必须使用fields参数。你的代码肯定错了。如果您仍然没有收到电子邮件,请确保在登录对话框中询问您电子邮件权限。另外,请确保该电子邮件已被批准,并且用户实际使用该电子邮件登录。不,我仍然有相同的问题。。。只是不明白为什么我不在应用程序设置中接收电子邮件一切正常请求电子邮件..在右上角选择应用程序后,在api资源管理器中尝试api调用。在令牌调试器中调试访问令牌。做一些挖掘。