跳转至

Google: 服务账户#

使用服务账户比 OAuth2 更复杂。开始之前:

  • 检查您的节点是否与服务账户兼容
  • 确保您需要使用服务账户。对于大多数用例,OAuth2 是更好的选择。
  • 阅读 Google 有关创建和管理服务账户的文档。

先决条件#

设置服务账户#

将您的 n8n 凭证连接到 Google 服务账户有四个步骤:

  1. 创建 Google Cloud Console 项目
  2. 启用 API
  3. 设置 Google Cloud 服务账户
  4. 完成您的 n8n 凭证

创建 Google Cloud Console 项目#

首先,创建一个 Google Cloud Console 项目。如果您已经有了项目,请跳转到下一部分:

  1. 使用您的 Google 凭证登录您的 Google Cloud 控制台
  2. 在顶部菜单中,选择顶部导航中的项目下拉菜单并选择 新建项目,或直接前往 新建项目 页面。
  3. 输入 项目名称 并为您的项目选择 位置
  4. 选择 创建
  5. 检查顶部导航并确保项目下拉菜单中选择了您的项目。如果没有,请选择您刚刚创建的项目。

    Google Cloud 顶部导航中的项目下拉菜单
    检查 Google Cloud 顶部导航中的项目下拉菜单

启用 API#

创建项目后,启用您需要访问的 API:

  1. 访问您的 Google Cloud 控制台 - 库。确保您在正确的项目中。
    Google Cloud 顶部导航中的项目下拉菜单
    检查 Google Cloud 顶部导航中的项目下拉菜单
  2. 转到 API 和服务 > 库
  3. 搜索并选择您要启用的 API。例如,对于 Gmail 节点,搜索并启用 Gmail API。
  4. 某些集成需要其他 API 或需要您请求访问权限:

    需要 Google Drive API

    以下集成需要 Google Drive API 以及其自己的 API:

    • Google Docs
    • Google Sheets
    • Google Slides

    Google Vertex AI API

    除了 Vertex AI API 之外,您还需要启用云资源管理器 API

  5. 选择 启用

设置 Google Cloud 服务账户#

  1. 访问您的 Google Cloud Console - 库。确保您在正确的项目中。

    The project dropdown in the Google Cloud top navigation
    检查 Google Cloud 顶部导航中的项目下拉菜单

  2. 打开左侧导航菜单,转到 APIs & Services > Credentials。Google 会带您到 Credentials 页面。

  3. 选择 + Create credentials > Service account
  4. Service account name 中输入名称,在 Service account ID 中输入 ID。有关更多信息,请参阅创建服务账户
  5. 选择 Create and continue
  6. 根据您的用例,您可能想要使用相应的部分选择角色授予用户访问此服务账户的权限
  7. 选择 Done
  8. Service Accounts 部分下选择您新创建的服务账户。打开 Keys 选项卡。
  9. 选择 Add key > Create new key
  10. 在出现的模态框中,选择 JSON,然后选择 CREATE。Google 会将文件保存到您的计算机。

完成您的 n8n 凭证#

在 Google 项目和凭证完全配置后,完成 n8n 凭证:

  1. 打开下载的 JSON 文件。
  2. 复制 client_email 并将其作为 Service Account Email 输入到您的 n8n 凭证中。
  3. 复制 private_key。不要包含周围的 " 标记。将此作为 Private Key 输入到您的 n8n 凭证中。

    较旧版本的 n8n

    如果您运行的是 0.156.0 之前的 n8n 版本,请将 JSON 文件中的所有 \n 实例替换为新行。

  4. 可选:选择是否要模拟用户(已启用)。

    1. 要使用此选项,您必须作为 Google Workspace 超级管理员为服务账户启用域范围委托
    2. 输入要模拟的用户的 Email
  5. 如果您计划将此凭证与 HTTP Request 节点一起使用,请启用 Set up for use in HTTP Request node
    1. 启用此设置后,您需要为节点添加 Scope(s)。n8n 预填充了一些范围。有关更多信息,请参阅 OAuth 2.0 Scopes for Google APIs
  6. 保存您的凭证。

视频#

以下视频演示了上述步骤。

故障排除#

服务账户无法访问 Google Drive 文件#

服务账户无法访问未与其关联用户电子邮件共享的 Google Drive 文件和文件夹。

  1. 访问您的 Google Cloud Console 并复制您的服务账户邮箱。
  2. 访问您的 Google Drive 并转到指定的文件或文件夹。
  3. 右键单击文件或文件夹并选择 Share
  4. 将您的服务账户邮箱粘贴到 Add People and groups
  5. 选择 Editor 以获得读写访问权限,或选择 Viewer 以获得只读访问权限。

启用域范围委托#

要使用服务账户模拟用户,您必须为服务账户启用域范围委托。

不推荐

Google 建议您避免使用域范围委托,因为它允许模拟任何用户(包括超级管理员)并可能构成安全风险。

要将域范围权限委托给服务账户,您必须是 Google Workspace 域的超级管理员。然后:

  1. 从您的 Google Workspace 域的管理控制台,选择汉堡菜单,然后选择 Security > Access and data control > API Controls
  2. Domain wide delegation 窗格中,选择 Manage Domain Wide Delegation
  3. 选择 Add new
  4. Client ID 字段中,输入服务账户的 Client ID。要获取 Client ID:
    • 打开您的 Google Cloud Console 项目,然后打开服务账户页面。
    • 复制 OAuth 2 Client ID 并将其用作 Domain Wide DelegationClient ID
  5. OAuth scopes 字段中,输入以逗号分隔的范围列表以授予您的应用程序访问权限。例如,如果您的应用程序需要对 Google Drive API 和 Google Calendar API 的域范围完全访问权限,请输入:https://www.googleapis.com/auth/drive, https://www.googleapis.com/auth/calendar
  6. 选择 Authorize

在您可以模拟工作区中的所有用户之前,可能需要 5 分钟到 24 小时的时间。

此页面是否
💬 微信

🚀 与作者交流

关注公众号
n8n实战笔记公众号
n8n实战笔记
📚 教程 💡 案例 🔧 技巧
添加微信
添加作者微信
1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持