跳到主要内容

Slack 凭据

这些凭据可用于以下节点的身份验证:

支持的身份验证方式 ​

相关资源 ​

有关该服务的更多信息,请参阅 Slack API 文档。

使用 API 访问令牌 ​

配置此凭据需要一个 Slack 账号,以及:

  • 一个 Access Token(访问令牌)

生成访问令牌需要创建 Slack 应用。n8n 建议通过清单创建,一步即可配置全部作用域:

为 API 访问令牌通过清单创建应用 ​

  1. 打开 Slack API Apps 页面。
  2. 选择 Create New App > From a manifest(创建新应用 > 从清单创建)。
  3. 选择开发应用所用的 Workspace(工作区),再选择 Next(下一步)。
  4. 选择 JSON 选项卡,用下方 JSON 替换默认清单,并按需调整作用域。
  5. 选择 Next(下一步)。
  6. 查看摘要,选择 Create(创建),随后打开应用详情。
{
"display_information": {
"name": "n8n integration"
},
"features": {
"bot_user": {
"display_name": "n8n integration"
}
},
"oauth_config": {
"scopes": {
"bot": [
"channels:read",
"channels:history",
"chat:write",
"files:read",
"files:write",
"groups:read",
"groups:history",
"im:read",
"im:history",
"mpim:read",
"mpim:history",
"reactions:read",
"reactions:write",
"usergroups:read",
"usergroups:write",
"users.profile:read",
"users:read"
]
}
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}

为 API 访问令牌从头创建应用 ​

  1. 打开 Slack API Apps 页面。
  2. 选择 Create New App > From scratch(创建新应用 > 从头创建)。
  3. 输入 App Name(应用名称)。
  4. 选择开发应用所用的 Workspace(工作区)。
  5. 选择 Create App(创建应用),随后打开应用详情。
  6. 在左侧菜单的 Features(功能)下,选择 OAuth & Permissions(OAuth 与权限)。
  7. 在 Scopes(作用域)部分,为应用选择适当作用域。建议列表,请参阅作用域。

然后安装应用并复制令牌:

  1. 在左侧菜单的 Features(功能)下,选择 OAuth & Permissions(OAuth 与权限)。
  2. 在 OAuth Tokens(OAuth 令牌)部分,选择 Install to Workspace(安装到工作区)。此操作必须由 Slack 工作区管理员完成。
  3. 选择 Allow(允许)。
  4. 复制 Bot User OAuth Token(机器人用户 OAuth 令牌),填入 n8n 凭据的 Access Token(访问令牌)。
  5. 如果此凭据用于 Slack Trigger(触发器),请按照 Slack Trigger 配置中的步骤完成应用设置。

更多信息,请参阅 Slack API 的快速入门。

Slack Trigger 配置 ​

将 Slack 应用用于 Slack Trigger(触发器)节点的步骤如下:

  1. 在 Slack 中打开 Your Apps(你的应用),选择要使用的应用。

  2. 进入 Features(功能)> Event Subscriptions(事件订阅)。

  3. 开启 Enable Events(启用事件)控件。

  4. 在 n8n 中复制 Webhook URL,填入 Slack 应用的 Request URL(请求 URL)。

    Request URL(请求 URL)

    Slack 每个应用只允许一个请求 URL。测试工作流时,需要选择以下一种方式:

    • 先使用 Test URL(测试 URL)测试,确认全部正常后,再将 Slack 应用改为使用 Production URL(生产 URL)
    • 使用 Production URL(生产 URL)并启用执行日志。
  5. 验证通过后,选择要订阅的机器人事件,使用 n8n 的 Trigger on(触发条件)字段过滤这些请求。

    • 如需使用列表中没有的事件,将其添加为机器人事件,再在 n8n 节点中选择 Any Event(任意事件)。

更多信息,请参阅快速入门 | 配置应用监听事件。

信息

Slack 验证 Request URL(请求 URL)后,也可在应用清单中管理事件订阅:进入 Settings(设置)> App Manifest(应用清单),编辑 settings.event_subscriptions 块。

n8n 建议为 Slack Trigger 启用请求签名验证,增强安全性:

  1. 在 Slack 中打开 Your Apps(你的应用),选择要使用的应用。
  2. 进入 Settings(设置)> Basic Information(基本信息)。
  3. 复制 Signing Secret(签名密钥)的值。
  4. 在 n8n 中,将该值粘贴到凭据的 Signature Secret(签名密钥)字段。

在 Slack 中进行审批也需要 Signature Secret(签名密钥)字段。

使用 OAuth2 ​

信息

n8n Cloud 用户须知

Cloud 用户无需提供连接详情。选择 Connect my account(连接我的账号),通过浏览器连接。

如果自托管 n8n且需要从头配置 OAuth2,则需要 Slack 账户,以及:

  • 一个 Client ID(客户端 ID)
  • 一个 Client Secret(客户端密钥)

如需获取这两项,请创建 Slack 应用。n8n 建议通过清单创建,一步配置作用域及重定向 URL:

为 OAuth2 通过清单创建应用 ​

  1. 在 n8n 中,从 Slack 凭据复制 OAuth Callback URL(OAuth 回调 URL)。
  2. 打开 Slack API Apps 页面。
  3. 选择 Create New App > From a manifest(创建新应用 > 从清单创建)。
  4. 选择开发应用所用的 Workspace(工作区),再选择 Next(下一步)。
  5. 选择 JSON 选项卡,用下方 JSON 替换默认清单。将 <your-oauth-callback-url> 替换为从 n8n 复制的 URL,并按需调整作用域。
  6. 选择 Next(下一步)。
  7. 查看摘要,选择 Create(创建),随后打开应用详情。
{
"display_information": {
"name": "n8n integration"
},
"features": {
"bot_user": {
"display_name": "n8n integration"
}
},
"oauth_config": {
"redirect_urls": [
"<your-oauth-callback-url>"
],
"scopes": {
"bot": [
"channels:read",
"channels:history",
"chat:write",
"files:read",
"files:write",
"groups:read",
"groups:history",
"im:read",
"im:history",
"mpim:read",
"mpim:history",
"reactions:read",
"reactions:write",
"usergroups:read",
"usergroups:write",
"users.profile:read",
"users:read"
],
"user": [
"channels:write",
"groups:write",
"search:read",
"search:read.public",
"search:read.private",
"search:read.im",
"search:read.mpim",
"stars:read",
"stars:write",
"users.profile:write"
]
}
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
仅包含用户作用域的清单

部分 Slack API 端点(包括 Slack MCP 端点)仅支持用户令牌,不支持机器人令牌。如需用户令牌,请改用此清单,它将全部作用域作为用户作用域请求:

{
"display_information": {
"name": "n8n integration"
},
"oauth_config": {
"redirect_urls": [
"<your-oauth-callback-url>"
],
"scopes": {
"user": [
"channels:read",
"channels:write",
"channels:history",
"chat:write",
"files:read",
"files:write",
"groups:read",
"groups:write",
"groups:history",
"im:read",
"im:history",
"mpim:read",
"mpim:history",
"reactions:read",
"reactions:write",
"stars:read",
"stars:write",
"usergroups:read",
"usergroups:write",
"users.profile:read",
"users.profile:write",
"users:read",
"search:read",
"search:read.public",
"search:read.private",
"search:read.im",
"search:read.mpim"
]
}
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}

为 OAuth2 从头创建应用 ​

  1. 打开 Slack API Apps 页面。
  2. 选择 Create New App > From scratch(创建新应用 > 从头创建)。
  3. 输入 App Name(应用名称)。
  4. 选择开发应用所用的 Workspace(工作区)。
  5. 选择 Create App(创建应用),随后打开应用详情。
  6. 在左侧菜单的 Features(功能)下,选择 OAuth & Permissions(OAuth 与权限)。
  7. 在 Redirect URLs(重定向 URL)部分,选择 Add New Redirect URL(添加新重定向 URL)。
  8. 从 n8n 复制 OAuth Callback URL(OAuth 回调 URL),填入 Slack 的新重定向 URL。
  9. 选择 Add(添加)。
  10. 选择 Save URLs(保存 URL)。
  11. 在 Scopes(作用域)部分,为应用选择适当作用域。作用域列表,请参阅作用域。

然后完成应用与 n8n 的连接:

  1. 在 Settings > Basic Information(设置 > 基本信息)中,打开 App Credentials(应用凭据)部分。
  2. 复制 Client ID(客户端 ID)和 Client Secret(客户端密钥),粘贴到 n8n 的对应字段。
  3. 在左侧菜单的 Features(功能)下,选择 OAuth & Permissions(OAuth 与权限)。
  4. 在 OAuth Tokens(OAuth 令牌)部分,选择 Install to Workspace(安装到工作区)。此操作必须由 Slack 工作区管理员完成。
  5. 选择 Allow(允许)。
  6. 此时应可点击 n8n 凭据中的 OAuth 按钮进行连接。

更多信息,请参阅 Slack API 的快速入门;OAuth 流程本身的更多详情,请参阅 Slack 的通过 OAuth 安装文档。

作用域 ​

作用域决定应用具有哪些权限。

  • 如需应用代表授权用户执行操作,在 User Token Scopes(用户令牌作用域)部分添加所需作用域。
  • 构建机器人时,在 Bot Token Scopes(机器人令牌作用域)部分添加所需作用域。

以下列出 OAuth 凭据要求的作用域,可作为起点。上方应用清单已包含这些作用域:

作用域名称说明
channels:read
channels:write不可用作机器人令牌作用域
channels:history
chat:write
files:read
files:write
groups:read
groups:write用于私密频道管理操作
groups:history
im:read
im:history
mpim:read
mpim:history
reactions:read
reactions:write
stars:read不可用作机器人令牌作用域
stars:write不可用作机器人令牌作用域
usergroups:read
usergroups:write
users.profile:read
users.profile:write不可用作机器人令牌作用域
users:read
search:read已被 Slack 弃用,为节点版本 <= 2.6 保留
search:read.public用于公开频道消息搜索
search:read.private不可用作机器人令牌作用域
search:read.im不可用作机器人令牌作用域
search:read.mpim不可用作机器人令牌作用域

常见问题 ​

令牌过期 ​

Slack 提供 token rotation(令牌轮换) 功能,可以为机器人和用户令牌启用。启用后,每个令牌都会在 12 小时后过期。这在测试时可能有用,但 n8n 中使用此类令牌的凭据会在令牌过期后失效。如果要在生产环境中使用 Slack 凭据,必须关闭此功能。

检查 Slack 应用是否已启用令牌轮换的方法,请参阅 Slack API 文档:令牌轮换。

信息

如果应用已使用令牌轮换

请注意,Slack 应用一旦启用令牌轮换,就无法再次关闭。需要另行创建一个禁用令牌轮换的新 Slack 应用。

本文为社区中文翻译。查看对应英文原文