Skip to content

Google: 服务账号#

使用服务账号比 OAuth2 更复杂。在开始前请确保:

前提条件#

设置服务账号#

将您的 n8n 凭据连接到 Google 服务账号需要四个步骤:

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

创建 Google Cloud Console 项目#

首先创建一个 Google Cloud Console 项目。如果已有项目,请跳至下一节:

  1. 使用您的 Google 账号登录 Google Cloud Console
  2. 在顶部菜单中,选择顶部导航栏的项目下拉菜单,然后选择新建项目,或直接访问新建项目页面。
  3. 输入项目名称并选择项目的位置
  4. 点击创建
  5. 检查顶部导航栏,确保项目下拉菜单中已选中您的项目。如果没有,请选择您刚刚创建的项目。

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

启用 API#

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

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

    需要 Google Drive API

    以下集成除了需要自己的 API 外,还需要 Google Drive API:

    • Google 文档
    • Google 表格
    • Google 幻灯片

    Google Vertex AI API

    除了 Vertex AI API 外,您还需要启用 Cloud Resource Manager API

  5. 选择 启用

设置 Google Cloud 服务账号#

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

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

  2. 选择汉堡菜单 > API 和服务 > 凭据。Google 将带您进入凭据页面。

  3. 选择 + 创建凭据 > 服务账号
  4. 服务账号名称中输入名称,在服务账号 ID 中输入 ID。更多信息请参考创建服务账号
  5. 选择 创建并继续
  6. 根据您的使用场景,您可能需要在相应部分选择角色授予用户对此服务账号的访问权限
  7. 选择 完成
  8. 服务账号部分下选择您新创建的服务账号。打开密钥标签页。
  9. 选择 添加密钥 > 创建新密钥
  10. 在弹出的模态框中,选择 JSON,然后选择 创建。Google 会将文件保存到您的电脑上。

完成 n8n 凭据配置#

完成 Google 项目和凭据的全面配置后,请完善您的 n8n 凭据:

  1. 打开下载的 JSON 文件。
  2. 复制 client_email 并粘贴到 n8n 凭据中的 服务账号邮箱 字段。
  3. 复制 private_key(不要包含两端的 " 符号)。将其作为 私钥 输入到 n8n 凭据中。

    旧版 n8n 注意事项

    如果您使用的是 0.156.0 之前的 n8n 版本,请将 JSON 文件中所有的 \n 替换为换行符。

  4. 可选:选择是否要模拟用户身份(默认开启)。

    1. 要使用此功能,您必须作为 Google Workspace 超级管理员启用全域委派
    2. 输入您想要模拟的用户的 邮箱地址
  5. 如果您计划将此凭据与 HTTP 请求节点 配合使用,请开启 设置为 HTTP 请求节点使用
    1. 开启此设置后,您需要为节点添加 作用域。n8n 会预填充一些作用域。更多信息请参考 Google API 的 OAuth 2.0 作用域
  6. 保存 您的凭据。

视频教程#

以下视频演示了上述步骤的操作过程。

故障排除#

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

当文件或文件夹未与其关联的用户邮箱共享时,服务账号将无法访问 Google Drive 中的内容。

  1. 登录您的 Google Cloud 控制台 并复制服务账号邮箱
  2. 访问您的 Google Drive 并定位到目标文件或文件夹
  3. 右键点击文件或文件夹,选择 共享
  4. 添加人员和群组 栏中粘贴您的服务账号邮箱
  5. 选择 编辑者 获取读写权限,或选择 查看者 获取只读权限

启用全域委派#

要使用服务账号模拟用户,您必须为该服务账号启用全域委派功能。

不建议使用

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

要为服务账号授予全域权限,您必须是 Google Workspace 域的超级管理员。然后:

  1. 从 Google Workspace 域的管理控制台,选择汉堡菜单,然后选择 安全 > 访问和数据控制 > API 控制
  2. 全域委派 面板中,选择 管理全域委派
  3. 选择 添加新项
  4. 客户端 ID 字段中,输入服务账号的 客户端 ID。获取客户端 ID 的方法:
    • 打开您的 Google Cloud Console 项目,然后进入服务账号页面。
    • 复制 OAuth 2 客户端 ID 并将其用作 全域委派客户端 ID
  5. OAuth 范围 字段中,输入以逗号分隔的范围列表以授予应用程序访问权限。例如,如果您的应用程序需要对 Google Drive API 和 Google Calendar API 的全域完全访问权限,请输入:https://www.googleapis.com/auth/drive, https://www.googleapis.com/auth/calendar
  6. 选择 授权

可能需要 5 分钟到 24 小时才能模拟 Workspace 中的所有用户。