如何提交结果? Slack bolt-js、JavaScript

问题描述

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

@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