我知道 Google Drive API 允许与 Chrome 应用程序集成驱动器,但是扩展程序呢?可以/如何在 chrome 扩展中使用 Drive API?例如,我想要一个扩展,它会弹出一个列出用户文档的弹出窗口,我如何访问他们的驱动器框?我知道它从身份验证开始,但我也不知道该怎么做。
4 回答
关于身份验证,chrome.identity是开始的地方。
快速浏览一下GDrive 应用程序,我并没有真正发现任何特定于应用程序的东西(即扩展程序不可用的东西)。因此,我肯定会首先尝试将 GDrive 应用程序“移植”到扩展程序。
还有,我完全推荐这篇关于使用 AngularJS 构建应用程序的教程,它实际上会引导你构建GDrive 应用程序。它非常酷,对如何设置身份验证相关的东西有相当详细的解释(当然,你必须稍微调整一下才能应用于扩展),你可以忽略与AngularJS相关的东西(如果你是不感兴趣——虽然AngularJS也很酷)。
推荐路线图:
- 阅读有关chrome.identity的文档,以了解有关 API(*) 的一些信息。
- 学习教程,了解GDrive App的基本概念。
- 研究GDrive App的源代码,了解教程中未涉及的实现细节。
- 将GDrive 应用程序移植到 Chrome 扩展程序。(如果您在此过程中偶然发现特定问题,请随时返回此处。)
[查看下面的Zig Mandel 的答案,了解一个有趣的选择。]
这非常容易。
chrome.identity.getAuthToken() 将处理授权并返回访问令牌。然后,您可以在调用 Drive API 时使用该访问令牌设置 http 标头。
这里有一些示例代码Chrome Manifest with Google API
一些答案是直接使用 chrome 标识或驱动器 api。您不需要直接使用驱动器 api 来从用户驱动器获取文件 ID。如果您使用 chrome 身份,则必须在安装/升级扩展程序时包含明确的用户授权,并且用户在可能不需要/对用户风险更大时授予应用程序权限。避免在不需要时获取/存储令牌。Google 有一个名为 docpicker 的库,它可以满足您的需要,并且不需要您处理授权,也不需要向用户请求授权。问题是您必须下载它并可能对其进行调整以从扩展中使用,因为文件需要在扩展中都是本地的。我已经做到了,但不是针对这个特定的图书馆。一些库要求您摆弄 content_security_policy,如下所示:“ content_security_policy": "script-src 'self' 'unsafe-eval'; 对象-src 'self'",
有关示例,请参阅https://developers.google.com/picker/docs/index 。
更新 13/122013 - 谷歌表示 Picker 将很快更改为需要 oauth 令牌
https://stackoverflow.com/a/58380137/8627279
https://github.com/malik55khan/speardsheet-reader/
演示:https ://www.loom.com/share/d7d432c513a44b05a615fa0bd170fb23
在 google 控制台中创建一个 client-auth 密钥并选择 chrome 扩展。之后推送项目ID并保存。然后你会得到client_id。下一步创建一个 api 密钥。
添加一个新项目。- 选择谷歌云或电子表格 - 启用 API。
希望它会更有帮助。