FacebookConnect-JavaScript和PHPSDK

FacebookConnect-JavaScript和PHPSDK,php,javascript,facebook,Php,Javascript,Facebook,我试着把这两个SDK结合起来。为此,我创建了以下代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>New JavaScript SDK & OAuth 2.0 based FBConnect Tutorial | Thinkdiff.net</title>

我试着把这两个SDK结合起来。为此,我创建了以下代码:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>New JavaScript SDK & OAuth 2.0 based FBConnect Tutorial | Thinkdiff.net</title>
        <!--
            @author: Mahmud Ahsan (http://mahmud.thinkdiff.net)
        -->
    </head>
    <body>
        <div id="fb-root"></div>
        <script type="text/javascript">
            var button;
            var userInfo;

            window.fbAsyncInit = function() {
                FB.init({ appId: 'xxxxxxxxxx', //change the appId to your appId
                    status: true,
                    cookie: true,
                    xfbml: true,
                    oauth: true});
                showLoader(true);

        </script>

        <body>
            <?php
                $cookie = preg_replace("/^\"|\"$/i", "", $_COOKIE['fbs_' . "203222769784206"]);
                parse_str($cookie, $data);

                $fb = new Facebook(array(
                    'appId'  => "xxxx",
                    'secret' => "xxxxxx"
                ));
                $fb->setAccessToken($data['access_token']);
                var_dump($fb->getUser());
            ?>
    </body>
</html>

新的JavaScript SDK和基于OAuth 2.0的FBConnect教程| Thinkdiff.net
var按钮;
var用户信息;
window.fbAsyninit=函数(){
init({appId:'xxxxxxxxx',//将appId更改为您的appId
状态:正确,
曲奇:是的,
xfbml:是的,
oauth:true});
showLoader(真);

但是,它打印int(0)。可能是什么问题?哪里出了问题?访问令牌有问题吗?

此代码不起作用。问题是-PHP代码在服务器端运行,JS/HTML代码在浏览器上运行。您正在运行一个PHP服务器端代码,这取决于只有在加载并运行页面后才会发生的事情。它可能能够工作k下一个页面视图,因为cookie可能已设置

此外,只有在用户授权应用程序后才能设置访问令牌。您检查过了吗

这就是说,这是一种非常糟糕的获取用户数据的方法。解析FB设置的cookie不是FB支持的方法,可能会违反API的条款和条件

您可能必须使用标准的JS-SDK登录用户并获取access_令牌,然后将其发送到服务器并在服务器端获取数据