Итак, я использую кнопку входа в FB, чтобы пользователи могли войти в систему. После нажатия кнопки входа FB пользователь перенаправляется в файл с именем fb_redirect.php, чтобы php мог начать сеанс.Facebook API не получает токена доступа
window.fbAsyncInit = function()
{
FB.init({
appId: '12345',
status: true,
cookie: true,
xfbml: true
});
FB.Event.subscribe('auth.login', function(response)
{
window.location = '/fb_redirect.php';
});
};
В файле fb_redirect я следующее:
session_start();
require("model/facebook_api/src/facebook.php");
$facebook = new Facebook(array(
'appId' => '12345',
'secret' => '12345'
));
$access_token = $facebook->getAccessToken();
$facebook->setAccessToken($access_token);
if($access_token != "")
{
$user = $facebook->getUser();
if($user != 0)
{
$user_profile = $facebook->api("/".$user);
$fb_id = $user_profile['id'];
$fb_first_name = $user_profile['first_name'];
$fb_last_name = $user_profile['last_name'];
$fb_email = $user_profile['email'];
$_SESSION['login'] = "true";
}
}
header("Location:index.php");
Что произойдет в файле рода запутанным. Это действительно поразило или пропустило. Если я уже зарегистрирован в FB, а затем попытаюсь войти на мой сайт с помощью кнопки входа в FB, появится экран, а затем быстро исчезнет. Но он не регистрирует меня на моем сайте.
Если я не зарегистрирован в FB и не попытаюсь войти в мой сайт, появится экран и предложит мне войти в FB. Когда я успешно вхожу в FB на всплывающем экране, происходит перенаправление. Но когда это произойдет, я либо получаю сообщение об ошибке, сообщающее мне, что мне нужен действительный токен доступа. В других случаях он просто перенаправляется на домашнюю страницу без установки сеанса. Итак, я предполагаю, что токен доступа даже не был установлен.
Я где-то читал, что вы можете вручную установить токен доступа. Итак, я пробовал:
$facebook->setAccessToken($access_token);
Но это не сработало.
Я не знаю, как это понять. Есть идеи?