如何为Facebook SDK创建"channel.html"文件

Par*_*eix 5 facebook channel

在其文档中,Facebook建议为其JavaScript SDK使用频道文件.我的问题涉及有关如何创建此文件的小细节.很明显,我必须使用该行创建HTML文件<script src="//connect.facebook.net/en_US/all.js"></script>

但是Facebook建议尽可能长时间地缓存这个文件并提供一个PHP脚本来完成它.我的问题是:我应该把这个脚本放在哪里?在channel.html我将放置在我的网站安装的根目录(一个自托管的Wordpress博客)的同一个文件中.

谢谢!

P.

har*_*rry 12

通道文件应该只有您已经提到过的代码

<script src="//connect.facebook.net/en_US/all.js"></script>
Run Code Online (Sandbox Code Playgroud)

您可以将缓存代码放在任何位置,并且很可能将其放在索引文件中.


Jor*_*ark 5

我想强调一下我认为在这个特定问答中忽略的几点:

(1)在我看来,我会说Facebook推荐的"channel.html"代码片段需要是一个单独的文件 - 片段不能像哈利推荐的那样被放入索引文件中(通过它我假设他是指主页或网站的其他通用内容页面.

如果查看SCRIPT元素src属性指向的URL ,它就是在JS-SDK代码中异步调用的完全相同的脚本:

connect.facebook.net/en_US/all.js

因此,将SCRIPT指向此文件的另一个元素放入索引页(或任何其他页面)只会产生完全浪费且冗余的HTTP请求.有一个单独的文件,即"channel.html"的全部意义,是Facebook解决跨域脚本(XSS)问题的一种方式.这个概念的解释要比我在Stack Overflow文章中提到的更详细,更好理解," 为什么我们需要在我们的服务器上创建一个使用Facebook JS SDK的channel.html? "

(2.)值得注意的是,如果你决定在"channel.html"文件中使用PHP代码片段,那么你有两个选项在Facebook文档中没有明确说明:

(a)您可以使用PHP扩展名保存文件,例如"channel.php",并在JavaScript中更新变量,如下所示: channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.php'

(b)您可以保留文件名"channel.html"并配置服务器以允许'.html'文件作为PHP处理.

我还假设文件可以被调用,并存储在Web服务器的任何位置,只要它的channelURL值在URL中提供即可.