bot框架没有收到Slack dialog.open表单响应

我正在用Node.js的Bot Builder SDK构建bot

机器人是松弛的

我按照doc Connect a bot to Slack正确配置了slack和botframework

botframework,slack和node service之间的所有通信都是通过HTTPS进行的 . 该框架正在与松弛正确沟通 .

在下一步,我正在努力松弛dialog.open

首先,我在Bot Builder SDK中找不到任何方法,打开松弛对话框,我甚至试过Implement channel-specific functionality

最后我能够通过直接发帖打开对话框:https://slack.com/api/dialog.open

但是当我提交表单时,我收到错误:

我们连接时遇到了一些麻烦 . 再试一次?

请看截图:
slack dialog box with error

控制台显示以下错误:

请求网址:https://xxxxx.slack.com/api/dialog.submit回复:{“ok”:false,“error”:“curl_error”}

Slack使用“type”发送有效负载:“dialog_submission” .

我已经通过将"Interactive Components -> Request URL"更改为我的bot服务进行了测试 . 使松弛直接与我的bot服务通信 . 参考:"Add and Configure Interactive Messages (optional)" in Connect a bot to Slack

所以,当我点击提交按钮时,我确信正在从对话框发送消息 .

松弛和我的僵尸服务之间的消息丢失了 . 请求URL设置为:https://slack.botframework.com/api/Actions

我从未收到服务正在接收消息的任何迹象 .

请帮我解决这个问题 .

以下是我用来打开对话框的代码:

let RESTClient = require('node-rest-client').Client;
let FrameworkClient = new RESTClient();
let Promise = require('bluebird');
openDialogBox: function(token, trigger_id, callback_id) {
    return new Promise(function(resolve, reject) {
        var dialog = {
          "title": "Issue Details",
          "submit_label": "Submit",
          "callback_id": callback_id,
          "elements": [
            {
                    "type": "text",
                    "label": "Pickup Location",
                    "name": "loc_origin"
            },
            {
                    "type": "text",
                    "label": "Dropoff Location",
                    "name": "loc_destination"
            }
          ]
        };
        var args = {};
        args.headers = {Authorization: 'Bearer ' + token, 'Content-type': 'application/json; charset=utf-8'};
        args.data = {"trigger_id": trigger_id, "dialog": dialog};
        FrameworkClient.post("https://slack.com/api/dialog.open", args , function(data, response) {
          if (data && data.ok) {
            resolve(data);
          } else {
            reject();
          }
        });
    });
}

谢谢

回答(1)

2 years ago

根据@JasonSowers(工程师 - Microsoft Bot Framework)

Microsoft Bot Framework现在不支持此功能 .

他们将来可能会支持这一点 .