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

时间:2018-03-12 06:29:03

标签: botframework slack

我正在使用Bot Builder SDK for Node.js

构建bot

机器人是松弛的

我已根据文档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”。

我已经通过将“交互式组件 - >请求URL”更改为我的bot服务进行了测试。 使松弛直接与我的bot服务通信。 参考:Connect a bot to Slack

中的“添加和配置交互式消息(可选)”部分

因此,当我点击提交按钮时,我确信正在从对话框发送消息。

slack和我的bot服务之间的消息丢失了。当请求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 个答案:

答案 0 :(得分:1)

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

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

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