何时应使用服务帐户访问 google api?

When Service Account should be used to access google api?

我正在尝试使用 google api 从 gmail 帐户获取新电子邮件。但是阅读文档我发现有两种类型可以访问 api 第一种未经授权(使用 json 凭据),第二种是服务帐户(使用 p12 证书和密钥)

看不懂这个访问有什么区别?我究竟应该使用什么?

谢谢

Oauth2 是您要查看的第一种类型。使用 Oauth2,会向必须批准您的访问的用户显示同意屏幕。用途 您想要访问用户的 Gmail 帐户,您想要访问用户 google 日历,您想要访问用户 google 驱动器。

使用 service account 访问权限是通过获取服务帐户电子邮件地址并将其添加为相关数据的用户来预授权的。用法:您想允许其他用户将文件上传到您的 google 驱动器帐户,您可以将服务帐户电子邮件地址添加到 google 驱动器上的文件夹,然后服务帐户将能够上传到该文件夹无需提示任何用户权限的文件夹。

当您想要访问用户帐户时使用 Oauth2,当您想要访问由开发者控制的帐户时使用服务帐户。

如果您想访问用户的 Gmail 帐户,您需要使用 Oauth2,您无法授予其他用户访问您的 Gmail 的权限,因此无法授予服务帐户访问权限。