在不访问 Web 浏览器的情况下访问 Google 个 API

Access Google APIs without access to web browser

我正在设置一个自动 Gmail 帐户,该帐户将能够接收、解析和发送电子邮件,并且能够访问用户的 Google 日历。使用 Google's quickstart guide 进行授权,我能够获得所有必要的功能。问题是它需要访问 URL 才能授予程序权限。在本地开发时这不是问题,但这将部署在没有 GUI 或浏览器的 Debian Droplet 上。我猜这可以由 Selenium 或 Puppeteer 处理,但必须有更好的方法。

我调查了 Google's server-side authorization,但这似乎也涉及访问 URL。我也遇到过服务帐户,但似乎有些担心他们可以访问哪些 API,我不确定这是否适合我。

以下是我使用的示波器:

https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/gmail.readonly
https://mail.google.com/

服务帐户对我有用吗?如果不是,我应该走什么路线?

为了访问 gmail 帐户背后的私人用户数据。您的应用程序需要该帐户所有者的许可。或者更确切地说,他们同意访问数据。这就是向用户显示同意屏幕的原因。

您可以做的是验证您的应用程序一次,然后存储刷新令牌并在您的服务器上使用它。您还应该知道,正在测试刷新令牌的应用程序会在 7 天后过期。因此,您要么需要每周授权一次,要么将其投入生产并可能申请变更。

您应该知道使用 Gmail API 和 Oauth2。验证您的应用程序每年需要花费 15k 到 75k 的安全审计费用。

为了在 Gmail api 中使用服务帐户,您需要有一个 google 工作区帐户,并且需要为服务帐户设置全域委派。

您是否考虑过通过 SMTP 服务器?