来自交互式按钮 POST 的响应在 Mattermost 中被忽略
Response from interactive button POST is ignored in Mattermost
我正在构建一个斜杠命令。我想象的流程是:
- 用户在客户端触发斜杠命令
- 我的服务器处理请求和returns交互式下拉菜单
- 用户从客户端的下拉列表中选择选项
- 我的服务器处理来自选择的 POST 请求,并且
returns 一个交互式按钮
- 用户按下按钮
第 4 步和第 5 步之间似乎出了点问题。服务器处理选择和 returns 所需的响应:
{
"update": {"message": "Updated!"},
"ephemeral_text": "You updated the post!",
"attachments": [{
"text": "Ready?", "actions": [{
"name": "Go!",
"integration": {
"url": "https://somewhere.com?foo=bar"
"context": {"action": "event_submitted"}
}
}]
}]
}
...但客户端中没有显示任何内容。
JSON有什么问题吗?我尝试过其他方法,比如只返回一条短信。
我想知道,如果我误解了文档,客户端甚至永远不会评估交互式消息触发的 POST 的响应。在那种情况下,我将不得不从我的服务器向 Mattermost API 发出一个新请求,以便进入我工作流程的下一步。对吗?
我误解了 Mattermost 在这种情况下的工作原理。您无法处理来自 Mattermost 的 POST 和 return 另一个交互式按钮,因为 Mattermost 不评估响应主体。您必须向 API(或 Webhook)发出请求才能继续。
可以从 Mattermost 更新 POST
上的附件。文档中的相关部分:How do I manage properties of an interactive message?。解决方案是将新附件包装在 update.props
内,如下所示:
{
"update": {
"message": "Updates messsage",
"props": {
"attachments": [
{
"text": "Updated attachment text",
"actions": [
{
"name": "Updated action.",
"integration": {
"url": "...",
"context": {
"action": "do something"
}
}
}
]
}
]
}
}
}
我正在构建一个斜杠命令。我想象的流程是:
- 用户在客户端触发斜杠命令
- 我的服务器处理请求和returns交互式下拉菜单
- 用户从客户端的下拉列表中选择选项
- 我的服务器处理来自选择的 POST 请求,并且 returns 一个交互式按钮
- 用户按下按钮
第 4 步和第 5 步之间似乎出了点问题。服务器处理选择和 returns 所需的响应:
{
"update": {"message": "Updated!"},
"ephemeral_text": "You updated the post!",
"attachments": [{
"text": "Ready?", "actions": [{
"name": "Go!",
"integration": {
"url": "https://somewhere.com?foo=bar"
"context": {"action": "event_submitted"}
}
}]
}]
}
...但客户端中没有显示任何内容。
JSON有什么问题吗?我尝试过其他方法,比如只返回一条短信。
我想知道,如果我误解了文档,客户端甚至永远不会评估交互式消息触发的 POST 的响应。在那种情况下,我将不得不从我的服务器向 Mattermost API 发出一个新请求,以便进入我工作流程的下一步。对吗?
我误解了 Mattermost 在这种情况下的工作原理。您无法处理来自 Mattermost 的 POST 和 return 另一个交互式按钮,因为 Mattermost 不评估响应主体。您必须向 API(或 Webhook)发出请求才能继续。
可以从 Mattermost 更新 POST
上的附件。文档中的相关部分:How do I manage properties of an interactive message?。解决方案是将新附件包装在 update.props
内,如下所示:
{
"update": {
"message": "Updates messsage",
"props": {
"attachments": [
{
"text": "Updated attachment text",
"actions": [
{
"name": "Updated action.",
"integration": {
"url": "...",
"context": {
"action": "do something"
}
}
}
]
}
]
}
}
}