问题描述
问题是我有第一段代码,它向我发送了两个输入,一个是添加约会,第二个是删除约会。我在此代码下方留下了一张图片,以便您可以对其进行可视化。
@Command('/echo')
async appontmentCommand({ ack,say }) {
await ack();
try {
await say({
type: 'home',blocks: [
{
type: 'section',text: {
type: 'plain_text',text: 'Ici,vous pouvez ajouter ou supprimer votre rendez-vous manuellement.',emoji: true,},{
type: 'divider',{
type: 'section',text: {
type: 'mrkdwn',text: 'Pour ajouter un rendez-vous.',accessory: {
type: 'button',text: {
type: 'plain_text',text: 'Ajouter',value: 'click_me_123',action_id: 'button-action-add',text: 'Pour supprimer un rendez-vous',text: 'Supprimer',action_id: 'button-action',],});
console.log('Works correctly $$¤¤$$');
} catch (error) {
console.error('error right here $$¤¤$$: ',error);
}
}
IMAGE WITH THE RESULT OF LAST PIECE OF CODE RIGHT HERE
当我点击添加按钮(图片中显示为“Ajouter”)时,它会打开一个带有这些标签和输入的模式,这是允许我这样做的代码。
@Action('button-action-add')
async addAppointmentAction({ ack,body }) {
await ack();
try {
const result = await this.app.client.views.open({
token: process.env.SLACK_BOT_TOKEN,trigger_id: body.trigger_id,view: {
type: 'modal',callback_id: 'view_1',title: {
type: 'plain_text',text: 'Add rdv',submit: {
type: 'plain_text',text: 'Add',close: {
type: 'plain_text',text: 'Cancel',blocks: [
{
type: 'input',element: {
type: 'datepicker',initial_date: '' + format(new Date(),'yyyy-MM-dd'),placeholder: {
type: 'plain_text',text: 'Select a date',action_id: 'datepicker-action',label: {
type: 'plain_text',text: 'Day appointment',{
type: 'input',element: {
type: 'plain_text_input',action_id: 'plain_text_input-action',text: 'Select a hour,ex: 14:30',text: 'Time of appointment',text: 'Issue',text: 'Issue ',});
console.log(body.trigger_id);
} catch (error) {
console.error(error);
}
}
IMAGE WITH THE RESULT OF LAST PIECE OF CODE RIGHT HERE
但是当我点击提交按钮(那里显示添加,但它是一个sumbit按钮)以在后端获取结果时,我收到此错误:ERROR THAT I GET
我知道你必须推送,才能使用 view.sumbition 方法,但我不知道该怎么做,有人可以帮助我。
解决方法
要读取模态提交的payload,需要处理view_submission
// Listen for view_submission modal events
app.view(callbackId,fn);
看看这个:https://slack.dev/bolt-js/concepts#view_submissions
技术细节: https://github.com/slackapi/bolt-js#listening-for-events