虽然试图使用Facebook的页面插件创建一个小的portlet来显示公司页面的更新,但我遇到了各种错误。其中最大的是插件显示屏,根本没有显示出来。使用Facebook页面插件
这里是我的代码(直接复制并从Facebook粘贴,除了HTML标签):
<html>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-page" data-href="https://www.facebook.com/facebook"
data-small-header="false" data-adapt-container-width="true"
data-hide-cover="false" data-show-facepile="true"
data-show-posts="true"><div class="fb-xfbml-parse-ignore">
<blockquote cite="https://www.facebook.com/facebook">
<a href="https://www.facebook.com/facebook">Facebook</a>
</blockquote></div></div>
</body>
</html>
错误控制台抛出:获取文件://connect.facebook.net/en_US/sdk.js网:: ERR_FILE_NOT_FOUND
解决方案:将路径前面的“https://”添加到sdk。在下面的行产生变化:
js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
然而,这会导致无法再抛出的错误,但该插件显示(实际控件)是仍未显示。或者说,没有任何东西正在展示。
我试着:
- 卸下 '#XFBML = 1个&版本V2.5 =' 在路径
- 改变与ID的div的位置“FB-根的端部“
- 更改脚本的位置(之前和之后的各种元素)
- 使用多个浏览器
- 使用所有可能的解决方案,从this问题
我很难相信来自Facebook开发者网站的示例代码本身不起作用,并且想要解释我做错了什么。
首先,你需要使用的代码,通过HTTP(S)查看的网站上,否则参考形式SDK'// connect.facebook.net /'赢得”工作。您是通过浏览器在本地浏览您的页面吗?是通过文件系统打开吗?在这种情况下,SDK可能无法工作(即使您解决了地址问题) - 尝试将页面上传到(本地)Web服务器并通过HTTP(S)访问时。 – CBroe
@CBroe谢谢你的输入,我试着将文件上传到网络服务器,并查看它的方式和令人惊讶的是,它的工作。但是,可以请你向我解释为什么发生这种情况,为什么从本地文件系统打开文件时的SDK无法访问(即使有:在链接前面的“https”)。再次感谢。 – Bimde
SDK可以被“访问”,但它可能无法正确检查其他内容 - 比如哪个用户当前在浏览器中登录Facebook。 (如果你的FB页面,要显示,尚未公布的插件,或限制存取在一些其他的方式,其用户的事项记录下来。) – CBroe