Javascript 无法使用松弛螺栓检测多用户选择的操作
下面是一个简单的节点松弛应用程序,它向用户显示内置的Javascript 无法使用松弛螺栓检测多用户选择的操作,javascript,slack,slack-api,slack-dialog,Javascript,Slack,Slack Api,Slack Dialog,下面是一个简单的节点松弛应用程序,它向用户显示内置的多用户选择块元素。我想在用户单击输入中的submit按钮时处理该操作,因此我在块中设置了操作id,并根据文档中的示例添加了一个操作侦听器 然而,这一行动并没有被触发;ngrok显示传入的/slack/actions请求,但返回404 我错过了什么 const{App}=require('@slack/bolt'); const应用程序=新应用程序({ signingSecret:process.env.SLACK\u SIGNING\u SE
多用户选择
块元素。我想在用户单击输入中的submit按钮时处理该操作,因此我在块中设置了操作id,并根据文档中的示例添加了一个操作侦听器
然而,这一行动并没有被触发;ngrok显示传入的/slack/actions
请求,但返回404
我错过了什么
const{App}=require('@slack/bolt');
const应用程序=新应用程序({
signingSecret:process.env.SLACK\u SIGNING\u SECRET,
令牌:process.env.SLACK\u BOT\u令牌,
});
app.event('app_home_opened',({event,say})=>{
说(`Hi!`);
常数块=[{
“类型”:“节”,
“文本”:{
“类型”:“mrkdwn”,
“文本”:“从列表中选择一个或多个项目”
},
“附件”:{
“类型”:“多用户选择”,
“操作id”:“测试操作”,
“占位符”:{
“类型”:“纯文本”,
“文本”:“选择项目”
},
}
}];
说({blocks});
});
应用程序操作('test_action',异步(请求、恢复)=>{
控制台日志(req);
控制台日志(res);
});
app.error(error=>{
控制台错误(error);
});
(异步()=>{
等待应用程序启动(process.env.PORT | | 3000);
})();代码>所以我通过查看源代码找到了解决方案
据我所知,这在任何地方都没有文档记录,但如果您想为事件和操作指定单独的URL,您必须自己指定它们:
const app = new App({
signingSecret: process.env.SLACK_SIGNING_SECRET,
token: process.env.SLACK_BOT_TOKEN,
endpoints: {
events: '/slack/events',
actions: '/slack/actions'
},
});
404表示您在Slack app management页面上配置的操作URL显然不正确。它似乎调用了当前不存在的端点,并且根据文档将交互组件url设置为../slack/actions
。这就是博尔特希望将操作发送到的url吗?