Facebook Markup无法正常工作

时间:2012-01-22 17:00:47

标签: php javascript facebook wordpress

好吧,可能不是最好的头衔,但是meh。

我的WordPress主题的header.php中的<head>标记内有以下代码,用于检查我是否启用了Facebook。

<?php if ($config['social']['facebook']['enabled']): ?>
<script type="text/javascript">
    <?php echo sprintf('window.fbAsyncInit = function() { FB.init(%s); }', json_encode( $config['social']['facebook']['data'] )); ?>

    // Load the SDK Asynchronously
    (function(d){
        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        d.getElementsByTagName('head')[0].appendChild(js);
    }(document));
</script>
<?php endif; ?>

这会将以下内容输出到浏览器:

<script type="text/javascript">
        window.fbAsyncInit = function() { FB.init({"cookie":true,"fbml":true,"oauth":false,"status":true}); }           
        // Load the SDK Asynchronously
        (function(d){
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
        }(document));
</script>

注意我有 fbml ,但是,当我尝试使用FBML时,它不起作用。我已经回顾了Facebook关于这个问题的Developer Docs。我确实有xmlns设置:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#">

我不知道为什么开发人员文档很乱,但是我找不到任何与此相矛盾的东西(当我找到开发人员帮助时,而不是解释他们的功能):/

提前致谢!

1 个答案:

答案 0 :(得分:0)

不推荐使用FBML,您应该使用其中一种较新的技术。请参阅:https://developers.facebook.com/docs/reference/fbml/

您应该重新编写应用程序以使用新的JavaScript SDK(或您选择使用Graph API的其他SDK。

你的init函数缺少你的AppId以及channelUrl。你也不会再使用oath参数,因为SDK不仅仅使用了oauth 2.我应该看起来像:

FB.init({
  appId      : 'YOUR_APP_ID', // App ID
  channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
  status     : true, // check login status
  cookie     : true, // enable cookies to allow the server to access the session
  xfbml      : true  // parse XFBML
});

有关如何使用JS SDK的更多信息,请参阅:https://developers.facebook.com/docs/reference/javascript/