在 Google API 中使用自定义帐户而不是服务帐户

Posted

技术标签:

【中文标题】在 Google API 中使用自定义帐户而不是服务帐户【英文标题】:Use custom account instead of service account in Google API 【发布时间】:2014-11-15 10:10:35 【问题描述】:

我正在尝试从我的 App Engine 代码连接到 Google Drive。但它需要客户端代码。 Google App 引擎仅为服务帐户生成客户端代码(P12 密钥)。但我希望它用于我们创建的技术用户。 我该怎么做?

【问题讨论】:

【参考方案1】:

如果您所指的“技术用户”是@gmail 帐户,那么您唯一的选择是进行一次 OAUTH 舞蹈以获得 oauth 令牌和刷新令牌。您必须创建一个“Web 应用程序的客户端 ID”才能执行此操作。获得身份验证和刷新令牌后,您可以作为“技术用户”连接到 Google 云端硬盘。

如果您所指的“技术用户”是 Google Apps 帐户,那么您可以在 Google Apps 控制面板中使用所需的云端硬盘范围授权与服务帐户相关的消费者密钥/机密。当您连接到 Google 云端硬盘时,您必须在 API 调用中指明要模拟的用户(即技术用户)。

【讨论】:

如果我使用服务帐户在驱动器中创建电子表格,如何查看该帐户下的电子表格?我的意思是在网络上,因为我没有服务帐户的密码。 如果您使用服务帐户创建电子表格,您将始终代表在其驱动器上创建文件的真实帐户(即技术用户)执行此操作。 谢谢科马。但是服务帐户是否可以通过编程方式访问工作表? @koma 可以请您详细解释第二个选项。

以上是关于在 Google API 中使用自定义帐户而不是服务帐户的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Endpoints 的自定义身份验证(而不是 OAuth2)

将Google People API与服务帐户配合使用

Azure自动化帐户-如何使用自定义服务主体登录而不是作为帐户运行?

Google Drive API Python 服务帐户示例

使用服务帐户密钥对 Google Photos API 进行身份验证?

如何使用谷歌API在内部/自定义编辑器中打开和编辑共享谷歌文档?