我不确定我做错了什么,但我似乎无法打开对话框,但我得到了{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 消息,但对话框没有打开。我做错了什么?