JavaScript SDK无法通过http协议在Facebook应用中正常运行

时间:2011-11-04 14:35:26

标签: facebook-javascript-sdk

我在facebook上有一个应用程序,例如apps.facebook.com/my_app。 我的应用程序正在运行https协议。当它加载安全连接“https://apps.facebook.com/my_app”时一切都很顺利。

当有人通过http协议“http://apps.facebook.com/my_app”加载我的应用程序时,会出现问题。在这种情况下,Facebook JavaScript SDK无法正常工作。 Particullary。我收到消息“拒绝访问URL https://s-static.ak.facebook.com/connect/canvas_proxy.php?version=3”, FB.Canvas.setSize 不起作用。

我使用https://developers.facebook.com/docs/reference/javascript/

中的代码
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    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
      oauth      : true, // enable OAuth 2.0
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
    FB.Canvas.setSize({ height: <? echo $pageheight; ?> });
  };

  // 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>

更好的解决方案是,如果我可以更新我的应用的所有书签以链接到https网址,但facebook不提供此类选项。

有什么建议吗?

顺便说一下,我的应用程序通过https连接运行非常重要,因此所有通过http的请求都会被我的服务器重定向到https。 我为我的英语辩护。

0 个答案:

没有答案