我创建了一个应用程序,女巫正在使用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
答案 0 :(得分:2)
嗨,我在这里也遇到了同样的问题
并尝试了另一种方法
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']);