我想强调一下我认为在这个特定的问答中被忽略的几点:
(1) 在我看来,我会说 Facebook 推荐的“channel.html”代码片段需要是一个单独的文件——片段不能像 harry 推荐的那样仅仅放入索引文件中(通过我假设他的意思是主页或网站的其他通用内容页面)。
如果查看SCRIPT
元素src
属性指向的 URL,它与 JS-SDK 代码中异步调用的脚本完全相同:
connect.facebook.net/en_US/all.js
因此,将另一个SCRIPT
指向该文件的元素放入索引页面(或任何其他页面)只是在进行完全浪费和冗余的 HTTP 请求。存在单个文件(即“channel.html”)的全部意义在于 Facebook 解决跨域脚本 (XSS) 问题的一种方式。这个概念比我在 Stack Overflow 文章“为什么我们需要在我们的服务器上创建一个 channel.html 来使用 Facebook JS SDK? ”中解释得更详细,也更容易理解。
(2.) 值得注意的是,如果您决定使用“channel.html”文件中的 PHP 片段,您有两个选项在 Facebook 文档中并未明确说明:
(a) 您可以使用 PHP 扩展名保存文件,例如“channel.php”,并更新 JavaScript 中的变量,如下所示:
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.php'
(b) 您可以保留文件名“channel.html”并配置服务器以允许将“.html”文件作为 PHP 处理。
我还假设该文件可以被称为任何东西,并且可以存储在您的 Web 服务器上的任何位置,只要它的 URL 在channelURL
值中提供。