【问题标题】:Facebook Connect - JavaScript and PHP SDKFacebook Connect - JavaScript 和 PHP SDK
【发布时间】:2012-03-19 23:28:08
【问题描述】:

我尝试将这两个 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>

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

【问题讨论】:

    标签: php javascript facebook


    【解决方案1】:

    此代码不起作用。这是问题所在 - PHP 代码在服务器端运行,而 JS/HTML 代码在浏览器上运行。您正在运行一个 PHP 服务器端代码,该代码依赖于只有在页面加载和运行后才会发生的事情。由于可能设置了 cookie,因此它可能能够在下一次浏览量中工作。

    此外,在用户授权应用之前,可能不会设置 access_token 。你检查过吗?

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

    您可能必须使用标准的JS-SDK FB.Login() 来登录用户并获取access_token并将其发送到服务器并获取服务器端的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多