如何在谷歌浏览器中使用Facebook API?

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

有没有人知道如何实现这个? 在我甚至可以加载适用于Facebook的SDK之前,我无法继续前进。

您需要在扩展中编写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的解决方案 – 您需要将其调整为Facebooks规范。

希望这可以帮助。

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

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

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