从 Web 客户端调用 Microsoft Bot Framework 机器人,无需在 Azure 上托管
Posted
技术标签:
【中文标题】从 Web 客户端调用 Microsoft Bot Framework 机器人,无需在 Azure 上托管【英文标题】:Call Microsoft Bot Framework bot from Web Client without hosting on Azure 【发布时间】:2019-03-29 21:25:01 【问题描述】:我需要通过一个简单的 Microsoft Bot Framework 机器人和一个 Web 客户端(html、CSS 和 javascript、jQuery)建立通信
我看到有一些方法可以使用 WebChat、DirectLine API 来做到这一点,但我不想使用任何 Azure 服务,如 Bot Registrations Service 或 App Service 来获取频道,而是我想使用纯 JavaScript 来调用bot 因为它只是一个 Web API 应用程序,所以必须有办法。
我尝试了一个简单的 jQuery ajax 调用,它调用了服务器,但很快就失败了
$(document).ready(function()
$.post('http://localhost:3979/api/messages',
"type": "message",
"from":
"id": "user1"
,
"text": "hello"
).fail(function(error)
debugger;
).done(function(response)
debugger;
);
);
看来我需要完全形成活动对象https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-api-reference?view=azure-bot-service-4.0#activity-object 但是我怎样才能获得所有属性值
谁能告诉我这是否可能以及如何实现它
【问题讨论】:
【参考方案1】:您的机器人需要至少实现directline(其中之一包含在模拟器中,这就是它能够为您处理对话和活动的原因),并通过免费机器人托管您的机器人azure 上的注册通道也会为您处理此问题。
一个不需要 Azure 的非官方 Directline 实现示例是 offline directline,但如果您创建一个处理会话 ID 以及其他必需活动参数的实现,这也可以工作。
【讨论】:
以上是关于从 Web 客户端调用 Microsoft Bot Framework 机器人,无需在 Azure 上托管的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Bot Framework - 使用 ngrok 在本地构建和调试客户端
Microsoft Bot Framework - 如何将数据从 Azure 数据库获取到我的 Bot 项目?