首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不向Microsoft或Azure注册的情况下托管Microsoft?

如何在不向Microsoft或Azure注册的情况下托管Microsoft?
EN

Stack Overflow用户
提问于 2019-10-21 16:43:21
回答 2查看 662关注 0票数 3

我一直试图找到一个替代注册和托管我的微软机器人微软/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

代码语言:javascript
复制
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

代码语言:javascript
复制
<!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>

错误

控制台-错误

EN

回答 2

Stack Overflow用户

发布于 2019-10-21 18:09:28

不确定您需要多少重构,但是僵尸包可能会给您提供您想要的。

Botkit只是包含的一组更大的开发工具和SDK的一部分。提供了构建Botkit的基础。它可以用多种编程语言!

或者,如果你够大胆的话,你可以问微软opencode@microsoft.com的那些人,你能不能拔出他们的bits,然后把Azure的比特挖出来呢?

票数 0
EN

Stack Overflow用户

发布于 2019-10-22 16:49:25

关于“线下直接线”包,它不是过时的。我怀疑你没有正确配置它。下面的代码示例足以让包运行。那你只需要把你的机器人指向它。

代码语言:javascript
复制
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。安装程序只是略有不同,因此需要您使用一些配置。但是值得一看。

希望得到帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58490727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档