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

时间:2012-04-15 03:22:06

标签: javascript jquery facebook google-chrome-extension

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

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

2 个答案:

答案 0 :(得分: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的解决方案 - 您需要将其调整为Facebooks规范。

希望这有帮助。

答案 1 :(得分:2)

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

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

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