PublishSlack Processor
描述
向指定的 Slack 频道发送消息。消息内容可以是使用表达式语言的用户自定义消息,也可以将 FlowFile 的内容作为消息发送。 如果发送用户自定义消息,还可以选择将 FlowFile 的内容作为文件附件上传。
标签
使用场景
将特定文本作为消息发送到 Slack,可选地将 FlowFile 的内容作为附件发送。
将 "Access Token" 设置为您的 Slack OAuth Access Token 的值。
将 "Channel" 设置为频道的 ID 或以 # 符号为前缀的频道名称。例如,"C0123456789" 或 "#general"。
将 "Publish Strategy" 设置为 "Use 'Message Text' Property"。
将 "Message Text" 设置为您希望作为 Slack 消息发送的文本。
如果应将 FlowFile 的内容作为文件附件,则将 "Include FlowFile Content as Attachment" 设置为 "true",否则设置为 "false" 仅发送消息文本而不附加附件。
将 FlowFile 的内容作为消息发送到 Slack。
将 "Access Token" 设置为您的 Slack OAuth Access Token 的值。
将 "Channel" 设置为频道的 ID 或以 # 符号为前缀的频道名称。例如,"C0123456789" 或 "#general"。
将 "Publish Strategy" 设置为 "Send FlowFile Content as Message"。
多处理器协同场景
在线程中回复 Slack 消息。
将 "Destination" 设置为 "flowfile-attribute"
添加一个名为 "thread.ts" 的新属性,值为 `$.threadTs`
添加一个名为 "message.ts" 的新属性,值为 `$.ts`
添加一个名为 "channel.id" 的新属性,值为 `$.channel`
添加一个名为 "user.id" 的新属性,值为 `$.user`
将 "matched" 关系连接到 PublishSlack。
将 "Access Token" 设置为您的 Slack OAuth Access Token 的值。
将 "Channel" 设置为 `${'channel.id'}`
将 "Publish Strategy" 设置为 "Use 'Message Text' Property"。
将 "Message Text" 设置为您希望作为回复发送的文本。如果需要,可以通过包含文本 `<@${'user.id'}>` 来引用原始消息的用户。
例如:`Hey, <@${'user.id'}>, thanks for asking...`
将 "Include FlowFile Content as Attachment" 设置为 "false"。
将 "Thread Timestamp" 设置为 `${'thread.ts':replaceEmpty( ${'message.ts'} )}`
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Access Token | | 用于认证/授权 Lynxus 发送的 Slack 请求的 OAuth Access Token。可以是用户令牌或机器人令牌。该令牌必须被授予 chat:write 权限。此外,要将 FlowFile 内容作为附件上传,还必须被授予 files:write 权限。 敏感属性:是 | |
| Channel | | 要发送消息的频道名称或标识符。如果使用频道名称,必须以 # 字符为前缀。例如,#general。这仅对公共频道有效。否则,必须提供要发布到的频道的唯一标识符。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Publish Strategy | Send FlowFile Content as Message |
| 指定处理器如何将消息或文件发送到 Slack。 |
| Message Text | | 要发送到 Slack 的消息文本。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Character Set | UTF-8 | 指定用于对 FlowFile 内容进行编码的字符集的名称。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Include FlowFile Content as Attachment | false |
| 指定是否应将 FlowFile 的内容作为 Slack 消息的附件上传。 |
| Max FlowFile Size | 1 MB | 可发送到 Slack 的 FlowFile 的最大大小。如果任何 FlowFile 超过此大小,它将被路由到 failure。这很重要,因为文件的全部内容必须加载到 Lynxus 的堆中才能将数据发送到 Slack。 | |
| Thread Timestamp | | 此消息所属线程的时间戳标识符。如果未指定,消息将是顶级消息而不是线程中的消息。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Methods Endpoint Url Prefix | | Slack 客户端的自定义。设置 methodsEndpointUrlPrefix。如果您需要为 Slack API Methods 调用设置不同的 URL 前缀,可以在此设置。默认值:https://slack.com/api/ 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | 如果由于任何其他原因无法发送到 Slack,FlowFile 将被路由到“失败” | 否 |
rate limited | 如果超出速率限制,FlowFiles 将被路由到“速率受限” | 否 |
success | FlowFiles成功发送到Slack后路由成功 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
slack.channel.id | 从中检索消息的 Slack 通道的 ID |
slack.ts | 发送的 slack 消息的时间戳; Slack 将其用作唯一标识符 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件要求有传入连接。
另请参阅
详细说明
PublishSlack
说明
PublishSlack 可以使用
Slack 的
chat.postMessage API 向
Slack 发送消息。应优先使用该
Processor,而不是已弃用的
PutSlack 和
PostSlack Processor,因为它旨在整合这两个
Processor 的能力,提高可维护性,并简化用户配置。
Slack 配置
要使用该
Processor,需要在你的
Slack 工作区中创建并安装一个
Slack App。必须为该
App 创建一个
OAuth 用户令牌或
Bot 令牌。令牌必须具有
chat:write Token Scope。关于如何创建应用并安装到你的工作区,
参见
Slack 文档的最新信息。
根据
Processor 的配置,你可能还需要额外的
Scope。例如,如果配置为把
FlowFile 的内容作为消息附件上传,必须授予
files:write 用户令牌
Scope 或
Bot 令牌
Scope。此外,要消费的频道可以以
Channel ID 或(对于公开频道)频道名称列出。但是,如果使用了
#general 这样的名称,令牌必须具有
channels:read Scope 才能为你确定
Channel ID。
作为不需要
channels:read Scope 的替代,你可以只为
"Channel" 属性提供
Channel ID。要确定某个频道的
ID,在
Slack 中打开目标频道,点击屏幕顶部的频道名称。会弹出一个提供
频道信息的窗口。滚动到弹窗底部,可以看到
Channel ID,并可点击按钮将其复制到剪贴板。
编写本文档时,以下步骤可用于创建具有必要
chat:write Scope 的
Slack App。不过,这些说明可能随时变化,因此最好阅读
Slack 快速入门指南。
- 创建一个 Slack App。点击这里开始。在这里,点击 "Create New App" 按钮并选择 "From scratch"。为你的 App 命名,并选择要用于开发该应用的工作区。
- 创建应用后会进入应用的配置页面。例如
https://api.slack.com/apps/<APP_IDENTIFIER>。在这里,点击左侧菜单的 "OAuth & Permissions"。滚动到 "Scopes" 部分,点击 'Bot Token Scopes' 下的 "Add an OAuth Scope" 按钮。选择chat:writeScope。 - 滚动回顶部,在 "OAuth Tokens for Your Workspace" 部分,点击 "Install to Workspace" 按钮。如果你有相应权限,系统会提示允许 把该应用添加到你的工作区;否则,会生成一个供工作区所有者批准 安装的通知。此外,会生成一个 "Bot User OAuth Token"。
- 复制
"Bot User OAuth Token" 的值。它将用作
ConsumeSlack Processor 的
Access Token属性的值。 - 然后必须为你要消费消息的每个频道启用该
Bot。方法是在
Slack 应用中,进入要消费的频道并按
/。选择Add apps to this channel选项,把你创建的 Application 作为 Bot 添加到频道。