从Chrome扩展程序访问Google文档

时间:2013-11-08 19:48:26

标签: oauth google-chrome-extension google-drive-api google-chrome-app

我知道Google Drive API允许与Chrome应用集成驱动器,但扩展程序又如何呢?可以/如何在Chrome扩展程序中使用Drive API?例如,我想要一个扩展名,其中包含一个列出用户文档的弹出窗口,如何访问其驱动器盒? 我知道它从认证开始,但我不知道该怎么做。

4 个答案:

答案 0 :(得分:6)

关于身份验证, chrome.identity 是您的起点。

快速查看 GDrive App ,我并没有发现任何特定于应用的内容(即扩展程序无法使用的内容)。所以,我一定会从尝试" port" GDrive应用程序扩展。

此外,我还完全推荐了这个教程 Building Apps with AngularJS ,它实际上将引导您构建 GDrive App 。它非常酷,有关于如何设置与身份验证相关的东西的相当详细的解释(当然,您必须稍微调整它以适用于扩展)并且您可以忽略 {{3相关的东西(如果你不感兴趣 - 虽然 AngularJS 也非常酷)。


推荐路线图:

  1. 阅读有关 AngularJS 的文档,以便对API(*)有所了解。
  2. 研究 chrome.identity ,了解 tutorial 的基本概念。
  3. 研究 GDrive App 的源代码,以填写 GDrive App 未涵盖的实施细则。
  4. tutorial 移至Chrome扩展程序。 (如果您在此过程中遇到特定问题,请随时回复此处。)

  5. [查看下面的 GDrive App 以获取有趣的替代方案。]

答案 1 :(得分:2)

这非常容易。

chrome.identity.getAuthToken()将处理授权并返回访问令牌。然后,在调用Drive API时,您可以使用该访问令牌设置http标头。

这里有一些示例代码Chrome Manifest with Google API

答案 2 :(得分:2)

有些答案直接使用chrome身份或驱动器api。您不需要直接使用驱动器api来获取用户驱动器的文件ID。如果您使用chrome身份,则必须在安装/升级扩展时包含显式用户授权,并且当用户可能没有必要/给用户带来更大风险时,用户正在授予应用权限。当你不需要时,避免获取/存储令牌。 Google有一个名为docpicker的库,它可以满足您的需要,并且不需要您处理授权,也不会向用户请求授权。问题是您必须下载它并可能从扩展中调整它以供使用,因为文件需要在扩展中全部是本地的。 我做过但不是这个特定的图书馆。有些图书馆要求您使用content_security_policy,如下所示: " content_security_policy":" script-src' self' '不安全-EVAL&#39 ;; object-src' self'",

有关示例,请参阅https://developers.google.com/picker/docs/index

2013年12月13日更新 - 谷歌已经表示,Picker将很快改为需要一个oauth令牌

答案 3 :(得分:0)

https://stackoverflow.com/a/58380137/8627279

https://github.com/malik55khan/speardsheet-reader/

演示:https://www.loom.com/share/d7d432c513a44b05a615fa0bd170fb23

在Google控制台中创建客户端身份验证密钥,然后选择Chrome扩展名。之后,推送项目ID并保存。那么您将获得client_id。 下一步,创建一个api密钥。

添加一个新项目。 -选择谷歌云或电子表格 -启用API。

希望它会更有帮助。