我在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。 我为我的英语辩护。