我需要从Microsoft Framework Bot中的MessagesController发送一个字符串到用JS编写的脚本。该字符串包含我们托管的机器人的机密值,该机密值处于非活动状态(未使用)。有没有办法从Azure托管的机器人发送字符串?
编辑:我试图创建一个返回字符串但不能通过url(sitename.azurewebsites.net/api/messages/methodname)检索它的方法,我不能使用Jsonresult或Actionresult,因为bot不是MVC
更多信息:我们设置了5个机器人,这些机器人将自己设置为活动(在聊天会话中)或不活动(不在聊天会话中)。我们通过数据库中设置的值知道机器人是否处于活动状态。数据库中有一个存储过程,它为非活动的bot返回直接线路密钥。我想要做的是将这个秘密(字符串)从数据库发送到JavaScript,以便我们可以动态生成机器人。问题是,我们不希望从前端的JS连接到数据库,而是希望从机器人(任何机器人)获取秘密。因此,我想从MessagesController中获取一个来自Azure上托管机器人的JavaScript的字符串值。
由于
EDIT2:
public IHttpActionResult GetString()
{
return Ok("it worked");
}
returns BotAuthenticator failed to authenticate incoming request!
答案 0 :(得分:3)
您可以实现以下目标:
我需要从Microsoft的MessagesController发送一个字符串 框架Bot用JS编写的脚本。
使用网络聊天频道的反向频道功能。根据您的查询,我假设您在此处使用此频道。
要获取有关反向通道的更多信息,请查看here。 我们的想法是从您的机器人代码发送一个事件,该事件将由客户端的JS接收:
客户端JavaScript还会侦听来自bot的特定事件。在他们的示例中,他们显示了根据机器人发送的事件更改客户端颜色的能力:
botConnection.activity$
.filter(activity => activity.type === "event" && activity.name === "changeBackground")
.subscribe(activity => changeBackgroundColor(activity.value))
您可以使用以下内容发送您需要的密码并激活正确的机器人。