2

我正在为 Google Chrome 构建一个扩展,它需要一个后台脚本来连接到 Facebook 并调用 Graph API 和 FQL。不幸的是,我在如何实现这一点上遇到了一些障碍。Chrome 使用内置的 CSP 来阻止任何内联脚本运行,我没有任何运气使用 JQuery 加载 Facebook 的 JavaScript SDK。

有人知道如何实现这一点吗?在我什至可以加载 Facebook 的 SDK 之前,我无法继续前进。

4

2 回答 2

2

您需要在扩展程序中编写 JavaScript 才能访问公共 Facebook API。您还需要为用户获取 OAuth2 令牌以访问他们的公共数据。以下是一些可能对您有所帮助的项目:

https://github.com/jjNford/html5-storage

https://github.com/jjNford/chrome-extension-socket

https://github.com/jjNford/oauth2-chrome-extension

第一个是 HTML5 localStorage 包装器,可帮助您在浏览器存储中存储一些数据(不要存储个人数据)。第二个使用 Chrome API 在后台页面和弹出窗口之间创建一个端口,以允许双向通信,以便您可以卸载 API 请求。第三个是在 Chrome 扩展中获取 OAuth2 的解决方案——您需要根据 Facebook 的规范对其进行调整。

希望这可以帮助。

于 2012-04-18T13:36:07.530 回答
2

如果您想使用更新速度快或比您自己的服务器更快的外部脚本,这通常是一个问题。出于安全原因,为了防止跨站点脚本,您需要在 manifest.json 文件中具有特殊权限。

"content_security_policy": "script-src 'self' https://connect.facebook.net; object-src 'self'"

如果您准确指定要从何处加载外部脚本,则可以加载外部脚本。如果您不了解 CSP,则会导致很多问题。在最终得到答案之前,我花了几个小时试图弄清楚我的扩展程序出了什么问题。

于 2012-12-21T22:59:05.313 回答