duanchu3376 2016-03-16 14:56
浏览 44

Facebook PHP SDK没有读取cookie值

I'm pretty new to Facebook SDK, but I'm trying to implement Facebook authentication, so I do that using both Javascript SDK and PHP SDK and using Javascript Helper as shown on docs, but this doesn't work, as this returns the message no access token found, but I have checked and cookie IS generated, what could be the problem?

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: 
" + server_response);
            if (server_response === 'ok') {
                window.location.href = "appmenu.php";
            }
        },
        error: function (server_response) {
            console.log("Error en respuesta servidor:" + server_response);
        }
    });
}

And the PHP the AJAX function calls

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;
        }
    }
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥35 平滑拟合曲线该如何生成
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 自己瞎改改,结果现在又运行不了了
    • ¥15 链式存储应该如何解决
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站