mattermost - Mattermost 无法打开对话框
问题描述
我不确定我做错了什么,但我似乎无法打开对话框,但我得到了{status: 'OK'}
回应......
最重要的版本:5.13.2
斜杠命令的帖子是短暂的
我的斜杠命令工作正常,交互式按钮也是如此(这应该触发对话框打开)。
这是我触发对话框的代码。此req
参数是通过单击按钮的操作传递的。
module.exports.addEmail = (req) => {
let body = req.body;
let data = JSON.stringify({
trigger_id : body.trigger_id,
url : resolve(config.MM_ACTION_URL, '/mattermost/dialog'),
dialog : {
title : 'Email',
callback_id : 'add_email',
elements : [
{
display_name : 'Email',
name : 'email',
type : 'text',
subtype : 'email',
placeholder : 'placeholder@example.com'
}
]
}
});
mmRequest('post', 'actions/dialogs/open', data)
.then((res) => {
console.log(res);
})
.catch((error) => console.log(error));
};
在服务器端,这是我为我的工作流程添加更多上下文的代码。
app.post('/mattermost/actions', (req, res) => {
// console.log(req.body);
let action = req.body.context.action;
if (action === 'add_email') {
dialog.addEmail(req);
}
});
app.post('/mattermost/dialog', (req, res) => {
console.log(req.body);
res.sendStatus(200);
});
对最重要的服务器进行 API 调用的函数是
module.exports.mmRequest = (method, url, data = {}) => {
let c = {
method : method,
baseURL : resolve(config.MATTERMOST_URL, 'api/v4/'),
url : url,
data : data,
headers : {
Authorization : `Bearer ${config.MM_ACCESS_TOKEN}`
}
};
return new Promise((resolve, reject) => {
Axios(c)
.then((res) => {
resolve(res.data);
})
.catch((error) => reject(error.response));
});
};
在 中console.log(res)
,我收到一条状态 OK 消息,但对话框没有打开。我做错了什么?
解决方案
推荐阅读
- python - 在 yaml 文件中存储任意对象的树
- azure - 使用托管标识从 Azure 数据工厂触发逻辑应用工作流
- javascript - 地理位置在移动设备上的 chrome 上不起作用
- python - Ansible community.general.ssh_config: ModuleNotFoundError: No module named 'storm'
- python - Pyspark 自定义接收器使用火花流读取 mongo 更改流日志
- javascript - 通过 http.get() 获得的数据末尾出现意外的 null
- reactjs - 是否有一个函数返回一个承诺,当在 React Native 中应用了对组件的任何未决更改时,该承诺会得到解决?
- react-native - 如何在 react-native 导航中加载第二个组件应该显示后退按钮
- javascript - [react-native]map() 和 "ref" 如何一起使用?
- react-native - 对象作为反应子无效。(找到带有键的对象...)如果您打算渲染一组孩子