我正在尝试在我的网站上使用新的Facebook Graph API。这就是我所拥有的:
页面上某处:
<fb:login-button autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button>
标签后面:
<div id="fb-root">
</div>
<script type="text/javascript">
window.fbAsyncInit = function () {
FB.init({ appId: '<%= ConfigurationManager.AppSettings["FBAppId"] %>', status: true, cookie: true, xfbml: true });
/* All the events registered */
FB.Event.subscribe('auth.login', function (response) {
// do something with response
alert("login success");
});
FB.Event.subscribe('auth.logout', function (response) {
// do something with response
alert("logout success");
});
FB.getLoginStatus(function (response) {
if (response.session) {
// logged in and connected user, someone you know
alert("login success");
}
});
};
(function () {
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
} ());
</script>
但是当我点击生成的登录按钮时,没有任何反应。
另外,我正在
FB.getLoginStatus() called before calling FB.init().
在Firebug控制台中。
有什么想法吗?
答案 0 :(得分:43)
我无法相信,我在Web.config中引用了一个非现有密钥,因此FB.init无声地失败。
现在按预期工作。
更清楚我没有将appId传递给FB.init,一旦我这样做了,它就有效了。
答案 1 :(得分:2)
就我而言,在我禁用XFBML功能(即将xfbml
密钥设置为false
,删除fb:
命名空间和#xfbml=1
片段后问题就消失了在<script src="…">
)。很好,我还是不需要它。
YMMV,出现此错误消息还有其他几个正当理由。
答案 2 :(得分:2)
有同样的问题,这是适合我的解决方案。只需将以下内容放入您的头部,或者换句话说,将 app_id 添加到facebook js的源代码中。
<script src="//connect.facebook.net/en_US/all.js&appId=xxxxxxxxxxxxxxx" type="text/javascript"></script>