我正在尝试在此网站上添加“使用Facebook登录”选项。 我在这里附上了两个相关的代码片段;我的大部分代码都来自Facebook开发者页面。
Javascript函数 - 与存储cookie的FB-SDK一起使用。
logInWithFacebook = function() {
FB.login(function(response) {
if (response.authResponse) {
$.ajax({
url: "addUser.php",
type: "post",
success : function() {
redirectTo('dashboard.php');
},
error : function() {
}
});
}
PHP脚本 - 获取访问令牌并获得响应。
<?php
session_start();
require_once __DIR__ . '/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '<entered app id>',
'app_secret' => '<and secret key>',
'default_graph_version' => 'v2.2',
]);
$helper = $fb->getJavaScriptHelper();
try {
$accessToken = $helper->getAccessToken();
// echo $accessToken;
// Line - 1
$response = $fb->get('/me?fields=id,name,email',$accessToken);
}
// CATCHING EXCEPTIONS FOLLOWED BY MORE CODE
问题是此代码在我的localhost中按要求运行。但是,当我将它添加到服务器时,我每次都会获得以下捕获的异常。
Facebook SDK返回错误:您必须提供访问令牌。
此外,在回显脚本中的accessToken时,我获得了与在localhost中回显时相同的长字符串。所以我猜这意味着cookie正确存储并且访问令牌可用。
由于代码在本地主机中运行良好,我不知道如何继续进行调试。
我也尝试了这一点,将// Line - 1
替换为$helper->getAccessToken()
。在那种情况下,我得到了这个。
图形错误:已使用此授权码