0

问题是我有第一段代码,它向我发送了两个输入,一个用于添加约会,第二个用于删除它。我在此代码下方留下了一张图片,以便您将其可视化。

@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',
                emoji: true,
              },
              value: 'click_me_123',
              action_id: 'button-action-add',
            },
          },
          {
            type: 'section',
            text: {
              type: 'mrkdwn',
              text: 'Pour supprimer un rendez-vous',
            },
            accessory: {
              type: 'button',
              text: {
                type: 'plain_text',
                text: 'Supprimer',
                emoji: true,
              },
              value: 'click_me_123',
              action_id: 'button-action',
            },
          },
        ],
      });

      console.log('Works correctly $$¤¤$$');
    } catch (error) {
      console.error('error right here $$¤¤$$: ',error);
    }
  }

图像与最后一段代码的结果就在这里

当我单击图像中显示为“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',
            emoji: true,
          },

          blocks: [
            {
              type: 'input',
              element: {
                type: 'datepicker',
                initial_date: '' + format(new Date(), 'yyyy-MM-dd'),
                placeholder: {
                  type: 'plain_text',
                  text: 'Select a date',
                  emoji: true,
                },
                action_id: 'datepicker-action',
              },
              label: {
                type: 'plain_text',
                text: 'Day appointment',
                emoji: true,
              },
            },
            {
              type: 'input',
              element: {
                type: 'plain_text_input',
                action_id: 'plain_text_input-action',
                placeholder: {
                  type: 'plain_text',
                  text: 'Select a hour, ex: 14:30',
                  emoji: true,
                },
              },
              label: {
                type: 'plain_text',
                text: 'Time of appointment',
                emoji: true,
              },
            },
            {
              type: 'input',
              element: {
                type: 'plain_text_input',
                action_id: 'plain_text_input-action',
                placeholder: {
                  type: 'plain_text',
                  text: 'Issue',
                  emoji: true,
                },
              },
              label: {
                type: 'plain_text',
                text: 'Issue ',
                emoji: true,
              },
            },
          ],
        },
      });
      console.log(body.trigger_id);
    } catch (error) {
      console.error(error);
    }
  }

图像与最后一段代码的结果就在这里

但是当我单击提交按钮(那里显示添加,但它是一个 sumbit 按钮)以在后端获取结果时,我收到此错误:我得到的错误

我知道你必须推动才能使用 view.sumbition 方法,但我不知道该怎么做,有人可以帮助我。

4

1 回答 1

0

要读取模态提交的有效载荷,您需要处理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

于 2021-07-22T09:29:26.590 回答