Google: 服务账号#
使用服务账号比OAuth2更复杂。开始前:
先决条件#
- 创建一个Google Cloud账户。
设置服务账户#
将您的n8n凭证连接到Google服务账户需要四个步骤:
创建一个Google云控制台项目#
首先,创建一个Google云控制台项目。如果您已有项目,请跳转至下一部分:
- 使用您的Google账号登录Google Cloud Console。
- 在顶部菜单中,选择顶部导航栏中的项目下拉菜单并选择新建项目,或直接前往新建项目页面。
- 输入项目名称并选择项目的位置。
- 选择创建。
-
检查顶部导航栏,确保项目下拉菜单中已选中您的项目。如果没有,请选择您刚刚创建的项目。
启用API#
项目创建完成后,启用您需要访问的API:
- 访问您的Google Cloud Console - Library。确保您处于正确的项目中。
检查Google Cloud顶部导航栏中的项目下拉菜单 - 前往API和服务 > 库。
- 搜索并选择您想要启用的API。例如,对于Gmail节点,搜索并启用Gmail API。
-
某些集成需要其他API或需要您申请访问权限:
需要Google Drive API
以下集成需要Google Drive API及其自身的API:
- Google Docs
- Google 表格
- Google 幻灯片
Google Vertex AI API
除了Vertex AI API外,您还需要启用Cloud Resource Manager API。
-
选择启用。
设置Google云服务账户#
-
访问您的Google Cloud Console - Library。确保您处于正确的项目中。
-
选择汉堡菜单 > API 和服务 > 凭据。Google 将跳转至您的 凭据 页面。
- 选择+ 创建凭证 > 服务账号。
- 在服务账号名称中输入名称,并在服务账号ID中输入ID。更多信息请参考创建服务账号。
- 选择创建并继续。
- 根据您的使用场景,您可能需要通过相应部分选择角色并授予用户对此服务账户的访问权限。
- 选择完成。
- 在服务账号部分选择您新创建的服务账号。打开密钥选项卡。
- 选择添加密钥 > 创建新密钥。
- 在弹出的窗口中,选择JSON,然后点击创建。Google会将文件保存到您的电脑上。
完成您的n8n凭证#
在Google项目和凭证完全配置完成后,完成n8n凭证设置:
- 打开下载的JSON文件。
- 复制
client_email并将其输入到您的n8n凭证中作为服务账号邮箱。 -
复制
private_key。不要包含两边的"引号。将此作为私钥输入到您的n8n凭证中。旧版n8n
如果您运行的n8n版本低于0.156.0,请将JSON文件中的所有
\n实例替换为换行符。 -
可选: 选择是否要模拟用户(默认开启)。
- 要使用此选项,您必须以Google Workspace超级管理员身份为服务账号启用全域委派。
- 输入您想要模拟的用户的邮箱。
- If you plan to use this credential with the HTTP 请求 node, turn on Set up for use in HTTP Request node.
- 启用此设置后,您需要为节点添加作用域。n8n会预填充一些作用域。更多信息请参考OAuth 2.0 Scopes for Google APIs。
- 保存您的凭据。
视频#
以下视频演示了上述步骤。
故障排除#
服务账号无法访问Google Drive文件#
服务账号无法访问未与其关联用户邮箱共享的Google Drive文件和文件夹。
- 访问您的Google Cloud Console并复制您的服务账号邮箱。
- 访问您的Google Drive并转到指定文件或文件夹。
- 右键点击文件或文件夹,选择共享。
- 将您的服务账号邮箱粘贴到添加人员与群组中。
- 选择Editor获取读写权限,或选择Viewer获取只读权限。
启用全域委派#
要使用服务账号模拟用户,您必须为该服务账号启用全域委派。
不推荐
Google建议您避免使用全域委派,因为它允许模拟任何用户(包括超级管理员)并可能带来安全风险。
要将全域权限委派给服务账号,您必须是Google Workspace域的超管。然后:
- 从您的Google Workspace域名的管理员控制台中,选择汉堡菜单,然后选择安全 > 访问和数据控制 > API控制。
- 在全域委派面板中,选择管理全域委派。
- 选择新增。
- In the Client ID field, enter the service account's Client ID. To get the Client ID:
- 打开您的Google云控制台项目,然后进入服务账号页面。
- 复制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小时不等的时间。