我正在使用Bot Builder SDK for Node.js
构建bot机器人是松弛的
我已根据文档Connect a bot to Slack
正确配置了slack和botframeworkbotframework,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”。
我已经通过将“交互式组件 - >请求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();
}
});
});
}
由于
答案 0 :(得分:1)
根据@JasonSowers(工程师 - Microsoft Bot Framework)
Microsoft Bot Framework现在不支持此功能。
他们将来可能会支持这一点。