FB._https不适用于https

时间:2012-06-21 12:06:23

标签: facebook facebook-javascript-sdk

你好我遇到与https://有关的问题。我在代码中使用了FB.getLoginStatus(function(response)函数。它仅适用于http://,但不适用于https://。我用Google搜索并找到了使用FB._https = (window.location.protocol == "https:");的解决方案。它几天前运作良好,但现在已经停止工作了。

我的代码看起来像

 <script>
        FB._https = (window.location.protocol == "https:");
        FB.init({
            appId : '<?php echo $this->appId; ?>',
            status : true, // check login status
            cookie : true, // enable cookies to allow the server to access the session
            xfbml : true // parse XFBML
        });

     function PostAction(custom_action)
     {
        console.log('out side of getlogin status');
        FB.getLoginStatus(function(response)
        {
          console.log("in getlogin status");
          if (response.authResponse) {
             fbcallBack(response);
          } else {
             FB.login(fbcallBack, {scope:'publish_stream'});
        }
      });
   }
</script>

在onclick事件中调用我的PostAction()。我写了console.log()来调试代码。使用带有out side of reglogin status的Facebook时,会触发in getlogin status的控制台,但不会https。但是,如果我使用http://,则效果很好。

任何人都可以指导我,请问有什么问题?如何解决?

问候。

1 个答案:

答案 0 :(得分:4)

截至昨日22:00,Facebook发布了这一消息:

http://developers.facebook.com/blog/post/2012/06/20/platform-updates--operation-developer-love/

  

正如5月份宣布的那样,我们更新了Javascript SDK来限制   公开曝光的界面。这是正在进行的流程的一部分   提高SDK的可靠性。我们已取消对所有人的访问权限   内部属性和以_。为前缀的方法。

     

如果您目前依赖访问内部属性,请   重构这个,以便你只依赖于公开的(和   官方支持的方法   https://developers.facebook.com/docs/reference/javascript/

     

请注意,未列为公共API一部分的所有方法可能都是   如有更改或删除,您不应直接使用它们。