我正在用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
但是当我提交表单时,我收到错误:
我们连接时遇到了一些麻烦 . 再试一次?
请看截图:
控制台显示以下错误:
请求网址: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 回答
根据@JasonSowers(工程师 - Microsoft Bot Framework)
Microsoft Bot Framework现在不支持此功能 .
他们将来可能会支持这一点 .