如何在 Chat 整合中配置 webhook 和斜杠命令
概述
Synology Chat 是专为企业用户设计的即时消息服务,可将他们的所有消息历史记录保密。在使用 Chat 时,可配置传入的和发出的 webhook 以促进与多个服务的整合和通信,如聊天机器人或 RSS 源。本文将引导您完成配置 webhook 和斜杠命令所需的过程。
目录
-
开始之前的准备
-
Webhook 整合
-
2.1 传入的 webhook
-
2.2 发出的 webhook
-
-
斜杠命令
-
3.1. 配置和执行
-
1.开始之前的准备
在 Synology Chat 中设置 webhook 之前,确保您完成了以下操作:
-
已经完成 Synology NAS 设置
-
安装了 DiskStation Manager (DSM)
-
从套件中心安装了 Synology Chat。
2.Webhook 整合
有两种 webhook 可用于与外部资源的整合和通信。要开始在 Chat 在使用 webhook 整合,请进入用户配置文件 > 整合。
2.1 传入的 webhook
webhook 包含有 JSON 格式的有效载荷。
若要创建如上所示的信息,请构建如下所示的 JSON 有效载荷:
{"text": "This is a test"}
将此 JSON 字符串放置在 payload 参数之后,使用 application/x-www-form-urlencoded 向 webhook URL 发送数据。例如:
POST https://DS_IP/webapi/entry.cgi?api=SYNO.Chat.External&XXXXX Content-Type: application/x-www-form-urlencoded payload=%7B%22text%22%3A%22This%20is%20a%20test.%22%7D
此外还提供了一个 CURL 示例:
curl -X POST --data-urlencode 'payload={"text": "This is a test"}' https://DS_IP/webapi/entry.cgi?api=SYNO.Chat.External&XXXXX
若要添加链接:
若要添加链接,您可直接将链接插入到 text。例如:
payload={"text": "https://www.synology.com"}
或者
payload={"text": "Check this!! for details!"}
若要上传文件:
文件可通过传入的 webhook 的上传到 Chat。若要上传文件,您的 JSON 有效载荷必须含有 file_url,而且还要有可选文本属性。例如:
payload={"text": "a fun image", "file_url": "http://imgur.com/xxxxx"}
文件将从 file_url 下载,然后上传到 Chat。
注:
-
最大文件大小为 32 MB。
2.2 发出的 webhook
发出的 webbook 允许您接收来自 Chat 的信息。简而言之,当信息与定义的触发词和条件匹配时,发出的 webhook 会向您分配的 URL 发送 HTTP POST 请求。
触发词和条件:
当信息与以下一个或两个条件匹配时可以触发发出的 webhook:
-
信息在指定的频道中。
-
信息以其中一个定义的触发词开头。
指定了频道时触发词可选,没有指定频道时触发词必填。如果指定了上述两个条件,则只有信息与两个条件匹配时才会发送发出的 webhook。
注:
-
在配置发出的 webhook 时,可指定任何可访问的频道。如果未指定任何频道,默认情况下,Chat 会监控所有公共频道。
发出数据:
当收到的信息与触发条件匹配时,将向所有指定的 URL 发送 POST。数据字段描述如下:
token: bot token channel_id channel_name user_id username post_id: message ID timestamp: message time text: message content trigger_word: trigger words
若要将响应发回 Chat,JSON 必须作为响应正文返回(支持的字段与传入的 webhook JSON 相同)。例如:
{"text": "This is a test"}
3.斜杠命令
与外部资源或应用程序的另一种交互方式是通过斜杠命令。只需在 webhook 整合部分配置发出的 webhook URL,与上述触发条件匹配的信息将通过 HTTP POST 发送到分配的 URL。斜杠命令可在任意频道中执行,只有命令发出者可以看到。
3.1 配置和执行
进入用户配置文件 > 整合 > 斜杠命令以注册斜杠命令整合。若要构建斜杠命令,只需在文本字段中键入正斜杠 “/”,然后输入您的命令。示例如以下屏幕截图中所示:
在执行斜杠命令时,HTTP POST 请求连同下面所列的一些属性一起发送到指定的 URL(过程与发出的 webhook 的过程类似):
token: bot token user_id username text: message content
外部资源或应用程序可决定是否响应从 Chat 发送的斜杠命令。要响应命令请求,响应中应包含如下的有效的 JSON 有效载荷:
{"text": "Slash command response."}
如下所示的响应信息将只发送给发出了该命令的用户,也只有该用户能看见。