Google: 服务账号#
使用服务账号比 OAuth2 更复杂。在开始前请确保:
前提条件#
- 创建一个 Google Cloud 账号
设置服务账号#
将您的 n8n 凭据连接到 Google 服务账号需要四个步骤:
创建 Google Cloud Console 项目#
首先创建一个 Google Cloud Console 项目。如果已有项目,请跳至下一节:
- 使用您的 Google 账号登录 Google Cloud Console。
- 在顶部菜单中,选择顶部导航栏的项目下拉菜单,然后选择新建项目,或直接访问新建项目页面。
- 输入项目名称并选择项目的位置。
- 点击创建。
-
检查顶部导航栏,确保项目下拉菜单中已选中您的项目。如果没有,请选择您刚刚创建的项目。
启用 API#
创建项目后,启用您需要访问的 API:
- 访问您的 Google Cloud Console - 库。确保您位于正确的项目中。
检查 Google Cloud 顶部导航栏中的项目下拉菜单 - 进入 API 和服务 > 库。
- 搜索并选择您要启用的 API。例如,对于 Gmail 节点,搜索并启用 Gmail API。
-
某些集成需要其他 API 或需要您申请访问权限:
- Google Perspective: 申请 API 访问权限。
- Google Ads: 获取 开发者令牌。
需要 Google Drive API
以下集成除了需要自己的 API 外,还需要 Google Drive API:
- Google 文档
- Google 表格
- Google 幻灯片
Google Vertex AI API
除了 Vertex AI API 外,您还需要启用 Cloud Resource Manager API。
-
选择 启用。
设置 Google Cloud 服务账号#
-
访问您的 Google Cloud Console - API 库。确保您处于正确的项目中。
-
选择汉堡菜单 > API 和服务 > 凭据。Google 将带您进入凭据页面。
- 选择 + 创建凭据 > 服务账号。
- 在服务账号名称中输入名称,在服务账号 ID 中输入 ID。更多信息请参考创建服务账号。
- 选择 创建并继续。
- 根据您的使用场景,您可能需要在相应部分选择角色和授予用户对此服务账号的访问权限。
- 选择 完成。
- 在服务账号部分下选择您新创建的服务账号。打开密钥标签页。
- 选择 添加密钥 > 创建新密钥。
- 在弹出的模态框中,选择 JSON,然后选择 创建。Google 会将文件保存到您的电脑上。
完成 n8n 凭据配置#
完成 Google 项目和凭据的全面配置后,请完善您的 n8n 凭据:
- 打开下载的 JSON 文件。
- 复制
client_email
并粘贴到 n8n 凭据中的 服务账号邮箱 字段。 -
复制
private_key
(不要包含两端的"
符号)。将其作为 私钥 输入到 n8n 凭据中。旧版 n8n 注意事项
如果您使用的是 0.156.0 之前的 n8n 版本,请将 JSON 文件中所有的
\n
替换为换行符。 -
可选:选择是否要模拟用户身份(默认开启)。
- 要使用此功能,您必须作为 Google Workspace 超级管理员启用全域委派。
- 输入您想要模拟的用户的 邮箱地址。
- 如果您计划将此凭据与 HTTP 请求节点 配合使用,请开启 设置为 HTTP 请求节点使用。
- 开启此设置后,您需要为节点添加 作用域。n8n 会预填充一些作用域。更多信息请参考 Google API 的 OAuth 2.0 作用域。
- 保存 您的凭据。
视频教程#
以下视频演示了上述步骤的操作过程。
故障排除#
服务账号无法访问 Google Drive 文件#
当文件或文件夹未与其关联的用户邮箱共享时,服务账号将无法访问 Google Drive 中的内容。
- 登录您的 Google Cloud 控制台 并复制服务账号邮箱
- 访问您的 Google Drive 并定位到目标文件或文件夹
- 右键点击文件或文件夹,选择 共享
- 在 添加人员和群组 栏中粘贴您的服务账号邮箱
- 选择 编辑者 获取读写权限,或选择 查看者 获取只读权限
启用全域委派#
要使用服务账号模拟用户,您必须为该服务账号启用全域委派功能。
不建议使用
Google 建议您避免使用全域委派,因为它允许模拟任何用户(包括超级管理员)并可能带来安全风险。
要为服务账号授予全域权限,您必须是 Google Workspace 域的超级管理员。然后:
- 从 Google Workspace 域的管理控制台,选择汉堡菜单,然后选择 安全 > 访问和数据控制 > API 控制。
- 在 全域委派 面板中,选择 管理全域委派。
- 选择 添加新项。
- 在 客户端 ID 字段中,输入服务账号的 客户端 ID。获取客户端 ID 的方法:
- 打开您的 Google Cloud Console 项目,然后进入服务账号页面。
- 复制 OAuth 2 客户端 ID 并将其用作 全域委派 的 客户端 ID。
- 在 OAuth 范围 字段中,输入以逗号分隔的范围列表以授予应用程序访问权限。例如,如果您的应用程序需要对 Google Drive API 和 Google Calendar API 的全域完全访问权限,请输入:
https://www.googleapis.com/auth/drive, https://www.googleapis.com/auth/calendar
。 - 选择 授权。
可能需要 5 分钟到 24 小时才能模拟 Workspace 中的所有用户。