Google: 服务账户#
使用服务账户比 OAuth2 更复杂。开始之前:
前置条件#
- 创建一个 Google Cloud 账户。
设置服务账户#
将您的 n8n 凭据连接到 Google 服务账户需要四个步骤:
创建 Google Cloud Console 项目#
首先,创建一个 Google Cloud Console 项目。如果您已经有项目,请跳转到下一节:
- 使用您的 Google 凭据登录到您的 Google Cloud 控制台。
- 在顶部菜单中,选择顶部导航中的项目下拉菜单并选择新建项目,或直接转到新建项目页面。
- 输入项目名称并为您的项目选择位置。
- 选择创建。
-
检查顶部导航并确保项目下拉菜单已选择您的项目。如果没有,请选择您刚创建的项目。
启用 API#
创建项目后,启用您需要访问的 API:
- 访问您的 Google Cloud 控制台 - 库。确保您在正确的项目中。
检查 Google Cloud 顶部导航中的项目下拉菜单 - 转到 API 和服务 > 库。
- 搜索并选择您要启用的 API。例如,对于 Gmail 节点,搜索并启用 Gmail API。
-
某些集成需要其他 API 或需要您请求访问权限:
- Google Perspective:请求 API 访问权限。
- Google Ads:获取开发者令牌。
需要 Google Drive API
以下集成除了需要自己的 API 外,还需要 Google Drive API:
- Google Docs
- Google Sheets
- Google Slides
Google Vertex AI API
除了 Vertex AI API,您还需要启用 Cloud Resource Manager API。
-
选择启用。
设置 Google Cloud 服务账户#
-
访问您的 Google Cloud Console - Library。确保您在正确的项目中。
-
选择汉堡菜单 > APIs & Services > Credentials。Google 将带您到 Credentials 页面。
- 选择 + CREATE CREDENTIALS > Service account。
- 在 Service account name 中输入名称,在 Service account ID 中输入 ID。有关更多信息,请参考创建服务账户。
- 选择 CREATE AND CONTINUE。
- 根据您的用例,您可能希望使用相应的部分来 Select a role 和 Grant users access to this service account。
- 选择 DONE。
- 在 Service Accounts 部分下选择您新创建的服务账户。打开 KEYS 选项卡。
- 选择 ADD KEY > Create new key。
- 在出现的模态框中,选择 JSON,然后选择 CREATE。Google 将文件保存到您的计算机。
完成您的 n8n 凭据#
Google 项目和凭据完全配置后,完成 n8n 凭据:
- 打开下载的 JSON 文件。
- 复制
client_email
并将其输入到您的 n8n 凭据中作为 Service Account Email 服务账户邮箱。 -
复制
private_key
。不要包括周围的"
标记。将此作为 Private Key 私钥 输入到您的 n8n 凭据中。较旧版本的 n8n
如果您运行的 n8n 版本早于 0.156.0,请将 JSON 文件中所有的
\n
实例替换为新行。 -
可选:选择是否要Impersonate a User 模拟用户(开启)。
- 要使用此选项,您必须作为 Google Workspace 超级管理员为服务账户启用域范围委派。
- 输入您要模拟的用户的 Email 邮箱。
- 如果您计划将此凭据与 HTTP Request 节点一起使用,请开启 Set up for use in HTTP Request node 设置用于 HTTP Request 节点。
- 启用此设置后,您需要为节点添加 Scope(s) 作用域。n8n 预填充了一些作用域。有关更多信息,请参考 Google API 的 OAuth 2.0 作用域。
- 保存 您的凭据。
视频#
以下视频演示了上述步骤。
故障排除#
服务账户无法访问 Google Drive 文件#
服务账户无法访问未与其关联用户邮箱共享的 Google Drive 文件和文件夹。
- 访问您的 Google Cloud Console 并复制您的服务账户邮箱。
- 访问您的 Google Drive 并转到指定的文件或文件夹。
- 右键单击文件或文件夹并选择 Share。
- 将您的服务账户邮箱粘贴到 Add People and groups 中。
- 选择 Editor 进行读写访问或 Viewer 进行只读访问。
启用域范围委派#
要使用服务账户模拟用户,您必须为服务账户启用域范围委派。
不推荐
Google 建议您避免使用域范围委派,因为它允许模拟任何用户(包括超级管理员)并可能带来安全风险。
要向服务账户委派域范围权限,您必须是 Google Workspace 域的超级管理员。然后:
- 从您的 Google Workspace 域的管理控制台,选择汉堡菜单,然后选择 Security > Access and data control > API Controls。
- 在 Domain wide delegation 窗格中,选择 Manage Domain Wide Delegation。
- 选择 Add new。
- 在 Client ID 客户端 ID 字段中,输入服务账户的 Client ID 客户端 ID。要获取客户端 ID:
- 打开您的 Google Cloud Console 项目,然后打开服务账户页面。
- 复制 OAuth 2 Client ID 并将其用作 Domain Wide Delegation 的 Client ID 客户端 ID。
- 在 OAuth scopes 字段中,输入逗号分隔的作用域列表以授予您的应用程序访问权限。例如,如果您的应用程序需要对 Google Drive API 和 Google Calendar API 的域范围完全访问权限,请输入:
https://www.googleapis.com/auth/drive, https://www.googleapis.com/auth/calendar
。 - 选择 Authorize。
您可能需要 5 分钟到 24 小时才能模拟工作区中的所有用户。