带有 Drive SDK 的 Google API 服务帐户

Google API Service Accounts with Drive SDK

我正在寻找有关通过服务帐户访问 Google 文档/Drive SDK 的说明。
我在 API 控制台中设置了所有内容,并且可以通过 JWT 进程成功生成访问令牌,并且确实可以向驱动 SDK 或 Docs List API 发出请求以获取文档列表。但是,文档列表总是空的,我希望在我的 Google Drive 中看到所有文档。我显然不完全理解服务帐户给你的东西。如果我通过服务帐户上传文档,那么它会正确显示,但在我的 Google 云端硬盘中不可见,就好像服务帐户是一个完全独立的黑匣子。

我想使用服务帐户的原因是我有一个正在运行的服务,它需要将文档上传到各种客户 Google 文档帐户,而他们不必经历 OAuth 舞蹈,因为根本没有 UI 交互。这可能与谷歌文档。我希望他们可以发送我的 client_email 和带有私钥的证书,我就可以将文档上传到该帐户。

非常感谢您的考虑

-马歇尔


不确定您是否需要答案,但我刚刚遇到同样的问题,来到这个帖子。找到了一种适用于我的解决方案,因此在这里与大家分享。
在我的案例中,与 GoogleDrive 的唯一集成点是文档列表。
当我第一次创建我的服务帐户时,它并没有很好地工作(只是一直空列表)。
我做了什么来解决它:

  • 转到 MyDrive 用户界面 https://drive.google.com/#my-drive
  • 检查了我想在我的网站上看到的所有文件
  • 在顶部菜单中单击"更多"->"共享..."->"共享..."
  • 在"添加人员"部分(新窗口"共享设置(N 项)")我添加了服务帐户电子邮件(格式为"XXXXXX@@developer.gserviceaccount.com")
  • 再次运行文档列表并使其正常工作。