微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提交表单后打开新的模式Slack Bot

如何解决提交表单后打开新的模式Slack Bot

因此,我创建了一个松弛机器人,用于打开带有表单的模式。提交表单后,我想打开另一个模式或更新该模式

表格提交成功!

由于某种原因,第二个模式无法打开。我尝试使用views.pushviews.openviews.update,但是它不起作用。也许我使用了错误的参数?我在下面包含了我的代码

slackInteractions.shortcut({ callback: 'devsquibby',type: 'shortcut'  },async (payload) => {
    if (payload.type=='shortcut') {
      console.log('we have action',payload)
      try {
            await webClient.views.open({
                trigger_id: payload.trigger_id,token: token,view: modalJsonBlock
            })
            // respond({
            //  text: 'Processing...',// });
        } catch (e) {
            'error',console.log(JSON.stringify(e))
        }

         // The return value is used to update the message where the action occurred immediately.
         // Use this to items like buttons and menus that you only want a user to interact with once.
    }

 if (payload.type=="view_submission") {

    try {
        console.log('success',payload.view.id)
        await webClient.views.update({
            view_id: payload.view.id,view: sampleJsonBlock
        })
        const blockData = payload.view.state
        // console.log('SUBMISSION THOURHG ACTION',blockData.values.type_block)

        // const user = payload.user.username
        // const classSelection = blockData.values.class_block.class_input.selected_option.text.text
        // const assignmentSelection = blockData.values.assignment_block.assignment_input.selected_option.text.text
        // const question = blockData.values.question_block.question_input.value
        const form = {
                    user: payload.user.username,classSelection: blockData.values.class_block.class_input.selected_option.text.text,assignmentSelection: blockData.values.assignment_block.assignment_input.selected_option.text.text,question: blockData.values.question_block.question_input.value,type: blockData.values.type_block.type_input.selected_option.text.text,repo_url: blockData.values.repo_block.repo_input.value
            
        }
        console.log('submission',form)
        await postAirTable(form);
    }
  catch (e) {
    'error',console.log(JSON.stringify(e))
}

这是我的JSON代码块:

const sampleJsonBlock = {
    "type": "modal","close": {
        "type": "plain_text","text": "Close","emoji": true
    },"title": {
        "type": "plain_text","text": "Success!","blocks": [
        {
            "type": "section","text": {
                "type": "mrkdwn","text": "Submission Successful!"
            }
        },{
            "type": "image","title": {
                "type": "plain_text","text": "Success!"
            },"image_url": "https://media.giphy.com/media/nXxOjZrbnbRxS/giphy.gif","alt_text": "success submission"
        }
    ]
}
const modalJsonBlock = {
    "type": "modal","callback_id": ...,"submit": {
        "type": "plain_text","text": "Submit","text": "Cancel","text": "Student Question Bot!","blocks": [
        {
         ...
        }
    ]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。