好吧,可能不是最好的头衔,但是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#">
我不知道为什么开发人员文档很乱,但是我找不到任何与此相矛盾的东西(当我找到开发人员帮助时,而不是解释他们的功能):/
提前致谢!
答案 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/。