【问题标题】:Enable Directline in MS BOT Framework在 MS BOT 框架中启用 Directline
【发布时间】:2018-01-30 03:40:49
【问题描述】:

1) 我为我的客户端应用程序创建了一个 REST API 并在 API 管理中注册(用于获取用户特定数据)

2) 我使用 LUIS 在 Azure 门户中创建了一个 BOT WEB APP,它运行良好(我添加了示例意图/话语)

3) 在 LUIS 应用程序中使用 REST API 作为 Intent 条件之一 在 BOT 模拟器和 Azure 门户中也测试了上述内容。 (在调用函数中硬编码用户信息)

现在我想在我的 MVC 客户端应用程序中配置 BOT,并根据登录的用户信息传递用户特定信息。我阅读了以下文章以启用直达 API。仍在寻找更好的资源。

Connect BOT using Directline API

DirectLine Auth

【问题讨论】:

  • 老实说,您的问题太宽泛,无法得到明确的答案。你想在这里做什么?您的 MVC 客户端中机器人的用例是什么?

标签: asp.net-mvc botframework microsoft-cognitive direct-line-botframework


【解决方案1】:

现在我想在我的 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>

测试结果:

使用以下代码 sn-p 从 bot 应用程序中的 Activity 对象中提取用户信息。

if (activity.From.Properties["firstname"] != null)
{
    var fname = activity.From.Properties["firstname"].ToString();
}

【讨论】:

    【解决方案2】:

    所以基本上你的问题是关于在网络应用程序中实现一个机器人界面。一种选择是使用 WebChat 作为频道:https://github.com/Microsoft/BotFramework-WebChat

    开源网络聊天控件使用 Direct Line API 与您的机器人通信,允许在客户端和机器人之间来回发送消息。您可以通过添加文档中提到的&lt;iframe&gt; 标签将其嵌入到您的网络应用程序中。也可以在这里查看更多信息:https://docs.microsoft.com/en-us/bot-framework/bot-service-design-pattern-embed-web-site

    否则,如您所说,使用 Direct Line API 并在您的 MVC 客户端 APP 中为此 API 实现网络层。这将负责构建消息并将其发送到机器人 API,并接收它们并将其用于相应的 UI 需求。我个人建议您使用 WebSockets 协议,以便在您的机器人之间建立双向通信并避免进行 HTTP 长轮询。在这里查看:https://docs.microsoft.com/en-us/bot-framework/rest-api/bot-framework-rest-direct-line-3-0-concepts

    【讨论】:

    • 谢谢!我已经分析了所有这些选项,但对选择哪种方法感到困惑。 docs.microsoft.com/en-us/bot-framework/… 似乎对 Styles 很好,但我不确定我是否可以从我的 c# 代码自定义响应,并且不确定我是否可以轻松扩展其他渠道(Alexa 和 CORTANA 等)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2017-12-07
    • 2016-07-20
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多