php - 使用 Facebook“无法加载 URL”登录我的网站时出错
问题描述
我从我的网站使用 Facebook API 登录时遇到问题,您第一次登录时一切正常,但当您第二次登录时,您会收到以下错误消息“无法加载 URL:此 URL 不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的应用程序域字段。”
我已经在 Facebook Developer 中正确配置了我的应用程序,然后我分享连接文件的代码:
<?php
if (isset($_GET['code']) || strpos($_SERVER["HTTP_REFERER"],'facebook') !== false) {
require_once("../includes/core.php");
require_once("../social/Facebook/autoload.php");
} else {
require_once("assets/includes/core.php");
require_once("assets/social/Facebook/autoload.php");
}
if (!session_id()) {
session_start();
}
$fb = new Facebook\Facebook([
'app_id' => siteConfig('fb_app_id'),
'app_secret' => siteConfig('fb_app_secret'),
'default_graph_version' => 'v2.3',
]);
$helper = $fb->getRedirectLoginHelper();
define('APP_URL','https://www.ciines.com/assets/sources/fbconnect.php');
$permissions = [];
$_SESSION['FBRLH_state']=$_GET['state'];
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo $e->getMessage();
exit;
}
if (isset($accessToken)) {
$request = $fb->get('/me?fields=id,name,email,gender', $accessToken);
$graphNode = $request->getGraphNode();
$location = json_decode(file_get_contents('http://freegeoip.net/json/'.$_SERVER['REMOTE_ADDR']));
$fbid = $graphNode['id'];
$name = $graphNode['name'];
$email = $graphNode['email'];
$gender = $graphNode['gender'];
fbconnect($fbid,$name,$email,$gender,$location);
header("Location: ".$sm['config']['site_url']);
} else {
$permissions = ['email']; // optional
$callback = $sm['config']['site_url'].'assets/sources/fbconnect.php';
$loginUrl = $helper->getLoginUrl($callback,$permissions);
header("Location: ".$loginUrl);
}
?>
解决方案
推荐阅读
- javascript - 如果选项是全部,则计算过滤器无
- c# - 如何获取来自 access 数据库的组合框项目的匹配值?
- visual-studio-code - vs代码,如何更改由“构建任务”触发的终端编码
- reactjs - 如何在 React 中循环拖动可拖动滑块
- javascript - 向下滚动时,我的 JS 代码不执行
- java - 是否可以在 GraalVM 下运行 tesseract.js(来自 https://github.com/naptha/tesseract.js),使用 graal.js 在 Java 中进行 OCR?
- flutter - 在AppWebview中颤动:对点击pdf链接做出反应
- javascript - 如何比较和验证数组中任何项的特定属性值与另一个数组的任何字符串值?
- python - 如何生成长度为 N 的随机二进制数 0 或 1 并可选择控制具有 0 或 1 的概率?
- java - 如何使用接口创建多种类型的列表?