Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Facebook PHP SDK未读取cookie值_Javascript_Php_Facebook_Cookies - Fatal编程技术网

Javascript Facebook PHP SDK未读取cookie值

Javascript Facebook PHP SDK未读取cookie值,javascript,php,facebook,cookies,Javascript,Php,Facebook,Cookies,我对Facebook SDK非常陌生,但我正在尝试实现Facebook身份验证,所以我使用Javascript SDK和PHP SDK,并使用文档中所示的Javascript Helper来实现身份验证,但这不起作用,因为它返回消息“找不到访问令牌”,但我已经检查并生成了cookie,可能会出现什么问题 JAVASCRIPT window.fbAsyncInit = function () { FB.init({ appId: 'xxxxxxxx', co

我对Facebook SDK非常陌生,但我正在尝试实现Facebook身份验证,所以我使用Javascript SDK和PHP SDK,并使用文档中所示的Javascript Helper来实现身份验证,但这不起作用,因为它返回消息“找不到访问令牌”,但我已经检查并生成了cookie,可能会出现什么问题

JAVASCRIPT

window.fbAsyncInit = function () {
    FB.init({
        appId: 'xxxxxxxx',
        cookie: true,
        version: 'v2.5'
    });
    FB.getLoginStatus(function (response) {
        if (response.status === 'connected') {
            $('#fb-login').text('Conexion autorizada').off('click');
        } else if (response.status === 'not_authorized') {
            $('#fb-login').removeClass('disabled').text('Autorizar App');
        } else {
            $('#fb-login').removeClass('disabled').on('click');
        }
    });
};
(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/es_LA/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

$('#fb-login').click(function () {
    FB.login(function (response) {
        if (response.authResponse) {
            FB_Auth();
        } else {
            alert('Inicio de sesión cancelado o no autorizado');
        }
    }, {scope: 'user_posts,email,contact_email,publish_actions,public_profile', return_scopes: true});
});

function FB_Auth() {
    $.ajax({
        url: 'auth/fb_login.php',
        method: 'POST',
        data: {action: 'login'},
        success: function (server_response) {
            console.log("La respuesta fue: \n" + server_response);
            if (server_response === 'ok') {
                window.location.href = "appmenu.php";
            }
        },
        error: function (server_response) {
            console.log("Error en respuesta servidor:" + server_response);
        }
    });
}
以及AJAX函数调用的PHP

PHP

    <?php
    require '../controladoras/globals.php';
    require '../Facebook/autoload.php';

    $action = filter_input(INPUT_POST, 'action', FILTER_SANITIZE_STRING);

    $fb = new Facebook\Facebook([
        'app_id' => 'xxxxxxxxx',
        'app_secret' => 'xxxxxxxxxxxx',
        'default_graph_version' => 'v2.5',
            ]);

    $helper = $fb->getJavaScriptHelper();

    try {
        $accessToken = $helper->getAccessToken();
    } catch (Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        echo ('Graph returned an error: ' . $e->getMessage());
    } catch (Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        echo ('Facebook SDK returned an error: ' . $e->getMessage());
    }


   if (! isset($accessToken)) {
  echo 'No cookie set or no OAuth data could be obtained from cookie.';
  exit;
    } else {
        var_dump($accessToken->getValue());
        $fb_auth = new Sesiones();
        switch ($action) {
            case 'login':
                $params = [["param" => "authLvl", "val" => 1], ["param" => "fb_access_token", "val" => (string) $accessToken]];
                $fb_auth->IniciarSesion($params);
                echo ('ok');
                break;
            case 'logout';
                $fb_auth->CerrarSesion();
                exit;
                break;
        }
    }