Сеанс Facebook от javascript facebook inlog cookie является нулевым

Для моего приложения мне нужно получить основную информацию о пользователях из профилей Facebook. Я сделал файл JavaScript, который обрабатывает кнопку входа в систему, и файл PHP, который обрабатывает сбор данных. PHP-файл использует FacebookJavaScriptLoginHelper для сеанса.

Проблема, которая у меня есть, состоит в том, что сеанс Facebook равен NULL, и из-за этого эта ошибка появляется всякий раз, когда я запрашиваю данные: Исправляемая фатальная ошибка: Аргумент 1, передаваемый в Facebook \ FacebookRequest :: __ construct (), должен быть экземпляром Facebook \ FacebookSession, с указанным нулевым значением, вызываемым в \ mypath \ FacebookRequest.php. Я использую локальный сервер xammp apache на https.
Это мои файлы php и JavaScript.

Файл JavaScript

<!DOCTYPE html>
<html xmlns:fb="http://ogp.me/ns/fb#">
<head>
<title>Javascript</title>
<meta charset="UTF-8">
</head>
<body>
<script>
function statusChangeCallback(response)
{
console.log('statusChangeCallback');
console.log(response);
if (response.status === 'connected')
{
// User is connected to app and facebook
}
else if (response.status === 'not_authorized')
{
// User is only logged into Facebook
}
else
{
// User has not logged in to Facebook
}
}function checkLoginState()
{
FB.getLoginStatus(function(response)
{
statusChangeCallback(response);
if (response.status === 'connected')
{
window.location="phpfile.php";
}

});
}

window.fbAsyncInit = function()
{
FB.init(
{
appId      : 'My_app_ID',
cookie     : true,
xfbml      : true,
version    : 'v2.1',
status     : true
});

FB.getLoginStatus(function(response)
{
statusChangeCallback(response);
});
};

(function(d, s, id)
{
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/nl_NL/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}
(document, 'script', 'facebook-jssdk'));
</script>

<fb:login-button max_rows="3" size="xlarge" show_faces="true" auto_logout_link="true"default_audience="everyone" onlogin="checkLoginState();"></fb:login-button>

<div id="status">
</div>

</body>
</html>

PHPfile

   <?php
require_once "/facebook-php-sdk-v4-4.0-dev/autoload.php";

use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\FacebookJavaScriptLoginHelper;

FacebookSession::setDefaultApplication('myappid', 'myappsecret');

$helper = new FacebookJavaScriptLoginHelper();
try
{
$session = $helper->getSession();
if($session === NULL)
{
echo "Session = null ";
}
}
catch(FacebookRequestException $ex)
{
// facebookerror
}
catch(\Exception $ex)
{

}
if ($session)
{
echo "session sucessfull";
}

?>

Когда я запускаю код и переменная $ session проверяется в phpfile, он будет нулевым, и он выведет сообщение, которое я сделал.
Мой вопрос: почему моя переменная $ session пуста в моем php-файле?

Заранее спасибо!

Связанный вопрос:

Facebook PHP SDK v4.0 FacebookJavaScriptLoginHelper возвращает состояние NULL

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]