如何在 WOZTELL 设置传入 Webhook 来接收外部消息

传入的 Webhook

通过在频道中添加 传入 Webhook ,您将能够将来自外部来源的消息发布到WOZTELL中的一个频道。
设置传入 Webhook
  1. 在"设置" -> "频道",进入"传入 Webhooks"。

  2. 选择"+ 创建 Webhook"以添加新的 webhook。

  1. 为 webhook 添加名称。然后点击"保存"以保存新的 webhook 设置。


  1. 一旦新的 webhook 被保存,将生成一个 URL。


编辑传入 Webhook

对于现有的传入 webhook,您可以切换此开关来激活/停用 webhook。

您可以点击"删除"以移除 webhook。

将消息发布到频道

要通过传入 webhook 将消息传递到 WOZTELL 频道,您需要使用 POST 方法并相应地格式化消息。

生成签名

要使用传入 webhook 发送消息,您需要生成签名并将其添加到头信息中:

"X-Woztell-Signature": signature

要生成签名:

{
const bodyStr = JSON.stringify(Body)
const signature = crypto.createHmac("sha256", channelSecret)
.update(bodyStr)
.digest("base64")


请求

以下是构建请求的参考。

主体

属性 类型 描述 必需
externalId 字符串 用于确定传入 webhook 逻辑将在哪个成员上运行 必需
messageEvent 对象 对于机器人逻辑,messageEvent 可以根据您的触发设置进行配置。 必需
meta 对象 将被发送到传入和传出 webhook 事件的 meta 数据 可选
messageEvent
属性 类型 描述 必需
type 字符串 由发送方决定的任何类型;如果类型设置为"状态"类型(例如 READ, SENT, DELIVERED, FAILED, DELETED),它可用于更新聊天的状态。 必需
data 对象 要包含在 messageEvent 中的数据。 可选
data.messageId 字符串 如果使用"状态"类型, messageId 可以用于更新特定消息的状态。 可选
data.watermark 字符串 替代 messageId,它更新所有时间戳之前的消息(使用毫秒数的纪元时间)状态。 可选
fallback 字符串 需要指定以启用 style中的所有组件 可选
style 对象 允许自定义文本消息的外观和视图 可选

style

属性 类型 描述 必需
borderless 布尔值 true 或 false;设置为 true 以移除文本的边框 可选
backgroundColor 字符串 消息块的背景颜色。接受 十六进制代码, 十六进制简写,和 默认浏览器颜色字符串 可选
textColor 字符串 文本的字体颜色。接受 十六进制代码, 十六进制简写,和 默认浏览器颜色字符串 可选
position 字符串 BOTUSER 或 CENTER;消息块在收件箱线程中的位置 可选
markdown 布尔值 true 或 false;设置为 true 以允许使用 markdown 格式化文本 可选

示例:

{
externalId: "852992919292",
messageEvent: {
type: "EVENT_TYPE",
data: {
invoiceId,
amount
},
"fallback": "**Hello there!**",
"style": {
"borderless": false,
"backgroundColor": "#fff",
"textColor": "#645",
"position": "BOT",
"markdown": true
},
data: {
messageId,
watermark
//这是专门为消息状态事件提供的示例数据。
}
}
}
}