Facebook PHP SDK-登录助手返回错误

时间:2018-08-29 21:48:13

标签: php facebook login facebook-php-sdk facebook-login

我创建了一个应用程序,女巫正在使用Facebook作为登录机会。我的APP在1天前就可以正常运行,但今天,当我的用户登录时,它开始出现此错误:

  

图形返回错误:无法加载URL:此URL的域未包含在应用程序的域中。为了能够加载此URL,请将应用程序的所有域和子域添加到应用程序设置的“应用程序域”字段中。

我的代码如下:

<?php
require 'vendor/autoload.php';

if(!session_id()) {
    session_start();
}

// Setting a local setting
$fb = new Facebook\Facebook([
  'app_id' => '****',
  'app_secret' => '****',
  'default_graph_version' => 'v2.2',
  ]);

// Setting up the Facebook Helper
$helper = $fb->getRedirectLoginHelper();

//Genneration FaceBook Callback Script
$loginUrl = $helper->getLoginUrl('https://gymbilletter.dk/facebook/facebook_callback.php',array('scope' => 'email'));
header("Location: ".$loginUrl);

并且我已将我的退货域列入白名单: Facebook OAuth Rederictlinks

我试图在实习生中寻找答案,但是我得到的唯一答案是将5.6.1更新为5.6.2,但是我已经在使用5.6.3

2 个答案:

答案 0 :(得分:2)

嗨,我在这里也遇到了同样的问题

BsonClassMapSerializer

并尝试了另一种方法

  

Facebook似乎“缺乏”打破了自己的代码。通过启用   在https之前,Validate OAuth URL不再验证。

     

我在重定向网址上添加了以下参数,以绕过   问题

https://mysubdomain.mysite.gr/index.php?r=site/callbackfb&enforce_https=1

答案 1 :(得分:1)

我目前正在使用Graph api版本v2.2

如果您在Facebook登录设置中打开Enforce HTTPS on。

转到您的facebook-php-sdk并在其中

Facebook\Helpers\FacebookRedirectLoginHelper.php

更改$ redirectUrl:

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['state','code']);

收件人

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['state','code','enforce_https']);