我正在用 js 创建一个小部件,该小部件将在许多网站上实现,
Facebook 要求我向他们提供“我的域名”,以便他们知道我已通过验证。
问题是许多网站都会使用该小部件,并且我不会手动将所有这些域列出到 Facebook。
如何使我的应用程序能够仅使用 js 在这些不同的网站上运行? (对于小部件)
提前致谢。
最佳答案
您的小部件可能需要在您自己的域托管的 iFrame 中加载其 FB 代码。然后,您需要使用一些跨域/跨 iframe JS 技巧来让您的系统与使用它的页面进行通信。 (这是关于这样做的一个很好的资源... http://softwareas.com/cross-domain-communication-with-iframes )这绝对是一种痛苦,但这是我能想到的做你想做的事情的唯一方法。目前可能有一些好的 JS 库可以让这件事变得更容易,但我还没有立即意识到。
另一个选择是创建一堆 Facebook 应用程序,每个应用程序属于不同的域。这也会给维护带来一些痛苦,但它会简化你需要编写的 JS 代码。这种方法在稳健性方面有一些优势 - 如果使用您的小部件的某个网站出现恶意行为并因任何原因禁止该应用程序,您的其他客户端网站将不会受到影响。
Facebook曾经提供过“克隆应用程序”工具,但现在我找不到它。
关于Facebook 使用来自不同域的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286881/