如何使用 Gmail API 访问我拥有的 Gmail 帐户?

How to access a gmail account I own using Gmail API?

我想 运行 一个节点脚本作为 cronjob,它使用 Gmail 的 API 轮询我拥有的 gmail 帐户。

我正在关注 these quickstart instructions:

我卡在了第一步。当请求 cron 脚本的凭据时,它告诉我 "User data cannot be accessed from a platform without a UI because it requires user interaction for sign-in":

文档总体上令人困惑,并提到了 "service accounts," "OAuth," 和其他内容——我不知道哪些适用于我的用例,哪些不适用于我的用例。我用过很多 SaaS API,典型的工作流程是登录您的帐户,获取 API 密钥和机密,然后在您的脚本中使用它们来访问 API。看来这 不是 Gmail API 使用的范例,所以我将不胜感激任何指导或指向更清晰说明的链接。

要完全理解 Gmail 的使用 API,通读 Gmail API Overview 确实会有所作为。

您还可以使用这些文档开始构建 Gmail 应用程序:

希望这些对您有所帮助。

我还发现文档有时会令人困惑,但一旦你得到它,你想要的实际上是非常简单的:

  1. Register your App at Google,然后说出您希望您的应用可以访问的 API(在本例中仅 Gmail API)。这将为您提供两个字符串,一个 client_id 和一个 client_secret(这是上面 client_secrets.json 文件的内容)。
  2. 由于您只是为自己的帐户编写脚本,因此不需要 http 服务器。 Oauth Playground 就足够了。按右上角的设置齿轮并使用您自己的 OAuth 凭据。
  3. Select API 列表中的 Gmail API,然后按照概述的步骤操作。

现在你有一个 access_token 和一个 refresh_token 可以用来让你的脚本无限期地运行!