为什么我的javascript在facebook应用程序中不起作用?

时间:2013-08-25 21:07:07

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我试图在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>

2 个答案:

答案 0 :(得分:0)

status:false,更改为status:true,。这status -

  

检查登录状态

答案 1 :(得分:0)

我很伤心。我甚至倒了一整瓶苏格兰威士忌。生活正在崩溃......

我终于明白了。我真的很惊讶为什么Facebook不允许使用Javascript。原来我需要使我的画布URL安全。所以我上传了SSL证书,并使用安全画布URL更新了Facebook应用程序仪表板。

同时确保在请求内容时不要指定http://或https://。只需指定//,就会将正确的协议用于请求。这意味着,如果页面被请求作为安全页面,则页面内请求的任何其他资源将自动请求为https。如果仅使用http请求页面,则将自动使用http协议请求页面内请求的相同资源。