我试图在facebook app canvas中使用一个非常简单的javascript功能,但是,我无处可去。我发布下面的代码。
另外,我只使用非HTTPS画布URL?这有什么不同吗?
当我在Facebook上查看我的应用时,我无法更改facebookUserIDDiv innerHTML。
但是,当我转到实际的主机URL(画布URL)时,我可以毫无问题地运行任何javascript。
FB app canvas是否支持标准DOM功能?
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId:'xxxxxxxxxxxxxxxxxx',
channelUrl:'//www.example.com/channel.html',
status:false,
cookie:true,
xfbml:false});
FB.getLoginStatus(function(response) {
if(response.status === "connected") {
var facebookUserID = response.authResponse.userID;
document.getElementById("facebookUserIDDiv").innerHTML
= facebookUserID;
}
}, true);
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<form>
<div id="facebookUserIDDiv"/>
</form>
</body>
答案 0 :(得分:0)
将status:false,
更改为status:true,
。这status
-
检查登录状态
答案 1 :(得分:0)
我很伤心。我甚至倒了一整瓶苏格兰威士忌。生活正在崩溃......
我终于明白了。我真的很惊讶为什么Facebook不允许使用Javascript。原来我需要使我的画布URL安全。所以我上传了SSL证书,并使用安全画布URL更新了Facebook应用程序仪表板。
同时确保在请求内容时不要指定http://或https://。只需指定//,就会将正确的协议用于请求。这意味着,如果页面被请求作为安全页面,则页面内请求的任何其他资源将自动请求为https。如果仅使用http请求页面,则将自动使用http协议请求页面内请求的相同资源。