我一直试图找到一个替代注册和托管我的微软机器人微软/Azure。我知道我可以在本地托管bot,只需将其注册到Microsoft,以便访问各种可用的通道,但我希望完全独立于Microsoft的注册来托管我的bot。
我的基本目标是公开一个直接行端点/api,该端点/api可以与我的bot进行通信,而不必向Microsoft注册所说的bot。我确信这可以通过某种中间件来完成,但是我很难找到有用的资源。我试图使用nodejs包离线-直接线,但没有成功。我相信这个方案已经过时,不再像预期的那样起作用了。目前,我正在使用这个包作为引用来尝试编写我自己的解决方案,但是任何替代的资源都是有帮助的。
关于这个项目的一些最后细节。该机器人是用.Net编写的,使用微软的。我需要一个专门适用于.Net机器人的解决方案,但我对一个可以使用.Net和Nodejs机器人的解决方案是开放的。谢谢您的帮助,我很乐意回答您提出的其他问题。
对于离线直接行回购,下面是我的设置的当前状态。我试图通过利用微软的EchoBot示例来获得一个简单的版本。我使用这个url http://localhost:8080/?domain=http://localhost:3000/directline连接到网络聊天。下面是我的nodejs应用程序和客户端网络聊天的代码片段。
app.js
const directline = require("offline-directline");
const express = require("express");
const app = express();
directline.initializeRoutes(app, 3000, "http://127.0.0.1:3978/api/messages");index.html
<!DOCTYPE html>
<html>
<body>
<div id="webchat" role="main"></div>
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<script>
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
let params = getUrlVars();
console.log(params);
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({
token: params['s'],
secret: params['t'],
domain: params['domain'],
webSocket: false
}),
},
document.getElementById('webchat')
);
</script>
</body>
</html>错误
发布于 2019-10-21 18:09:28
不确定您需要多少重构,但是僵尸包可能会给您提供您想要的。
Botkit只是包含的一组更大的开发工具和SDK的一部分。提供了构建Botkit的基础。它可以用多种编程语言!
或者,如果你够大胆的话,你可以问微软opencode@microsoft.com的那些人,你能不能拔出他们的bits,然后把Azure的比特挖出来呢?
发布于 2019-10-22 16:49:25
关于“线下直接线”包,它不是过时的。我怀疑你没有正确配置它。下面的代码示例足以让包运行。那你只需要把你的机器人指向它。
const directline = require('offline-directline');
const express = require('express');
const app = express();
directline.initializeRoutes(app, 4000, "http://127.0.0.1:3978/api/messages");如果您继续挣扎,另一种选择是“浏览器机器人”,您可以在Botbuilder-Sample回购这里上找到它。在此设置中,bot完全托管在浏览器中,不需要使用Direct。安装程序只是略有不同,因此需要您使用一些配置。但是值得一看。
希望得到帮助!
https://stackoverflow.com/questions/58490727
复制相似问题