1)我为我的客户端应用程序创建了一个REST API,并在API Management中注册了(用于获取用户特定数据)
2)我使用LUIS在Azure门户中创建了一个BOT WEB APP,它工作正常(我添加了示例Intents / Utterance)
3)在LUIS应用程序中使用REST API作为Intent条件之一 在BOT模拟器和Azure门户中也测试了上述内容。 (在调用函数中硬编码用户信息)
现在我想在我的MVC客户端应用程序中配置BOT,并根据登录的用户信息传递用户特定信息。我阅读了以下文章以启用directline API。仍在寻找更好的资源。
答案 0 :(得分:0)
所以基本上你的问题是在Web应用程序中实现bot接口。一种选择是使用WebChat作为渠道:https://github.com/Microsoft/BotFramework-WebChat。
开源网络聊天控件使用Direct Line API与您的机器人进行通信,该API允许在客户端和机器人之间来回发送消息。只需添加文档中提到的<iframe>
标记,即可将其嵌入到您的网络应用中。在此处查看更多信息:https://docs.microsoft.com/en-us/bot-framework/bot-service-design-pattern-embed-web-site
否则正如您所说的那样是使用Direct Line API并在MVC客户端APP中为此API实现网络层。这将负责构建消息并将其发送到bot API,并接收它们并将其用于相应的UI需求。我个人建议您使用WebSockets协议,以便在您的机器人之间建立双向通信,避免进行HTTP长轮询。请在此处查看:https://docs.microsoft.com/en-us/bot-framework/rest-api/bot-framework-rest-direct-line-3-0-concepts
答案 1 :(得分:0)
现在我想在我的MVC客户端应用程序中配置BOT,并根据登录的用户信息传递用户特定信息。
我正在使用以下代码示例在我的网站中嵌入bot并将用户特定信息传递给bot,这对我有用,你可以参考它。
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Test</title>
<link href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css" rel="stylesheet" />
<script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script>
</head>
<body>
<div>
<div id="mybot"/>
</div>
</body>
</html>
<script>
BotChat.App({
directLine: { secret: '{your_directline_secret}' },
//you can dynamically retrieve the logged in user info in your mvc View
//and pass thoes info to your bot
user: { id: '1234', firstname: '{your_fname}', lastname: '{your_lname}'},
bot: { id: '{your_botid}' },
resize: 'detect'
}, document.getElementById("mybot"))
</script>
测试结果:
使用以下代码段从bot app中的Activity
对象中提取用户信息。
if (activity.From.Properties["firstname"] != null)
{
var fname = activity.From.Properties["firstname"].ToString();
}