你好我遇到与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://
,则效果很好。
任何人都可以指导我,请问有什么问题?如何解决?
问候。
答案 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一部分的所有方法可能都是 如有更改或删除,您不应直接使用它们。