为什么我们需要在服务器上创建一个channel.html才能使用Facebook JS SDK?

时间:2011-08-13 19:21:35

标签: javascript facebook facebook-javascript-sdk

我真的不明白为什么我们需要创建channel.html文件,如FB docs所述。我也想了解它是如何使用的。在我的日志中,我没有看到这个文件被请求过。

2 个答案:

答案 0 :(得分:13)

通道文件是提供一种在FB服务器和您自己的服务器之间进行跨域通信的方法。原因是他们严格控制访问令牌。您必须验证重定向网址和应用ID以检索此访问令牌。为了让他们为您传递令牌,他们使用哈希中的访问令牌来访问您的URL。通过频道网址,他们可以将此令牌传递给自己(他们在您的域上运行的JavaScript)。

然后,此频道文件可以将访问令牌传送到您的活动页面。

要让他们将所有这些内容仅用于他们的域,他们需要在每个浏览器中都能运行的东西。目前,这是一个创建弹出窗口的黑客,这些弹出窗口无法通过服务器上运行的javascript访问。

答案 1 :(得分:3)

希望这有帮助。

https://developers.facebook.com/docs/reference/javascript/FB.init/

来自doc:

  

这是一个可以帮助解决三个特定已知问题的选项。首先,当涉及自动播放音频/视频时,用户可能听到两个音频流,因为该页面已在后台第二次加载以进行跨域通信。其次,如果你有框架破坏代码,那么你会看到一个空白页面。第三,这将防止在服务器端日志中包含额外的命中。在这些情况下,您可以提供可选的channelUrl参数: