标签: direct-line-botframework

当我从Microsoft Bot Framework阅读Direct Line API文档时,主机和端口来自何处

我注意到Direct Line请求网址是这样的:https://localhost:8011/api/在文档中.什么应该替换它?

我已经从botbuilderExamples文件夹部署了一个todoBot示例项目.我在My bots部分创建了一个机器人,结束点是:http://www.bigluntan.com:3978/api/messages.我在Test connection to your bot部分测试过,当我输入内容并发送它时,它正在工作.现在,我想试试Direct Line.所以我添加了Direct Line to Channels.但最困惑的部分是,如何调用此Direct Line api,导致终点不同于我的机器人的终点.

node.js botframework direct-line-botframework botconnector

2
推荐指数
1
解决办法
1839
查看次数

直线API - 机器人框架/英雄卡和附件

我刚刚开始使用Direct Line API(1.1),我看到它不会让你知道是否在Hero Card或Button中显示了对话.

 {
      "id": "fBPDq9JSeL|000000000000000004",
      "conversationId": "fBPDq9JSeL",
      "created": "2016-11-28T20:22:20.6035604Z",
      "from": "portosegurobot",
      "text": "Health For Pets\n\nNossa missão é proporcionar a cães e gatos uma vida mais saudável e feliz.\n\nAcesse e saiba mais\n\n(Acesse) https://health4pet.com.br/",
      "images": [],
      "attachments": [],
      "eTag": "W/\"datetime'2016-11-28T20%3A22%3A21.3990939Z'\""
    }

上面的代码显示(在模拟器中)带有按钮的英雄卡(卡片动作).Direct Line API不会标记出来吗?有办法吗?

c# chatbot botframework direct-line-botframework botconnector

2
推荐指数
1
解决办法
948
查看次数

如何使用直接API将聊天机器人显示为实时聊天?

<!DOCTYPE html>
<html>
  <head>
    <link href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css" rel="stylesheet" />
  </head>
  <body>
    <div id="bot"/>
    <script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script>
    <script>
      BotChat.App({
        directLine: { secret: direct_line_secret },
        user: { id: 'userid' },
        bot: { id: 'botid' },
        resize: 'detect'
      }, document.getElementById("bot"));
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我有这样的代码嵌入机器人的使用直接行API,而不是通常的iframe实时聊天,但是当我把我的directline私有密钥,机器人占据整个网页.我需要它显示在网页的右下角,当用户点击它时弹出为生活聊天.请有人指导我实现这一目标.谢谢

botframework direct-line-botframework

2
推荐指数
1
解决办法
706
查看次数

在 .net Framework 而不是 .netcore 中创建 Microsoft Bot 项目?

每当我使用 Microsoft Bot Framework V4 在 Visual Studio 中创建基本机器人项目时,都会创建一个带有 .net 核心的项目。我希望使用 .Net Framework 创建/实施机器人项目。

如何使用 .net 框架创建/构建 Bot 项目(Microsoft Bot Framework V4)?

bots .net-core botframework direct-line-botframework

2
推荐指数
1
解决办法
126
查看次数

新的 ms botbuilder 直线语音是否适合呼叫中心场景?

MS 最近推出了直接语音通道和一些 Web 前端使用它的示例。但我想知道它是否适合使用某些 SIP 或 twilio 电话之类的服务在呼叫中心场景中使用?如果是这样,我想查看一些文档如何使用直线语音 api 并将其连接到某些电话?我已经创建了 github 问题,但它仍然值得关注https://github.com/MicrosoftDocs/bot-docs/issues/1162

PS:我也有相关问题,我找不到任何关于如何将秘密交换为直线令牌的文档。原始直线的链接不适用于语音直线。谢谢

azure microsoft-cognitive botframework direct-line-botframework azure-cognitive-services

2
推荐指数
1
解决办法
648
查看次数

直线API-Bot框架

“您可以使用Direct Line API启用机器人与您自己的客户端应用程序之间的通信。”
根据我的观察,Bot(使用botframework创建)本身就是一个端点。为什么我们不能直接使用Bot的API与机器人进行通信?为什么我们需要直线?

botframework direct-line-botframework

1
推荐指数
1
解决办法
1687
查看次数

Botframework DirectLineClient.Conversations.PostActivityAsync返回null

我正在尝试通过DirectLineClient库将活动发送到我的机器人:

        var directLineClient = new DirectLineClient($"{secret}");
        directLineClient.BaseUri = new Uri($"https://directline.botframework.com/");

        var conversation = await directLineClient.Conversations.StartConversationAsync().ConfigureAwait(false);
        var activity = new Microsoft.Bot.Connector.DirectLine.Activity();
        activity.From = new Microsoft.Bot.Connector.DirectLine.ChannelAccount();
        activity.From.Name = "Morgan";
        activity.Text = message;
        activity.Type = "message";

        var resourceResponse = await directLineClient.Conversations.PostActivityAsync(conversation.ConversationId, activity).ConfigureAwait(false);
        await ReadBotMessagesAsync(directLineClient, conversation.ConversationId);
Run Code Online (Sandbox Code Playgroud)

resourceResponse始终为null。

Nicolas R回答后编辑

我添加了一种方法来等待机器人的响应:

    private static async Task ReadBotMessagesAsync(DirectLineClient client, string conversationId)
    {
        string watermark = null;

        while (true)
        {
            var activitySet = await client.Conversations.GetActivitiesAsync(conversationId, watermark);
            watermark = activitySet?.Watermark;

            foreach (Microsoft.Bot.Connector.DirectLine.Activity activity in activitySet.Activities)
            {
                Console.WriteLine(activity.Text);

                if (activity.Attachments …
Run Code Online (Sandbox Code Playgroud)

.net c# botframework direct-line-botframework

1
推荐指数
1
解决办法
689
查看次数

使用DirectLine和网络聊天(Node.js)在bot-framework v4中发送打字指示器

Microsoft bot-framework SDK v4的官方文档未演示如何发送打字指示符(而v3具有这些说明)。我正在使用DirectLine和botframework-webchat。

我该怎么做呢?谢谢!

node.js botframework direct-line-botframework

1
推荐指数
2
解决办法
1254
查看次数

将自定义参数从网络聊天控件传递到机器人框架

所以,我目前正在使用这个:

<!DOCTYPE html>
<html>
  <body>
    <div id="webchat"></div>
    <script src="https://cdn.botframework.com/botframework-webchat/preview/botchat.js"></script>
    <script>
      window.WebChat.renderWebChat({
        directLine: window.WebChat.createDirectLine({ secret: 'YOUR_BOT_SECRET_FROM_AZURE_PORTAL' })
      }, document.getElementById('webchat'));
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是我有多个针对不同客户端应用程序的 QnA 知识库。所以我想传递“applicationname”的自定义参数来决定 OnTurnAsync 方法中我的 BOT 框架(V4)中的 QNA KB。

我试过

var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
        directLine: d1,
         styleSet,
postActivity: activity => {
     var newActivity = Object.assign({}, activity, {channelData: { "userparam": "test" } });
     return dl.postActivity(newActivity);
    }

}, document.getElementById('webchat'));
})();
Run Code Online (Sandbox Code Playgroud)

但机器人中的 Context.Activity.ChannelData 返回 Null

并且也尝试过

var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
        directLine: d1,
        user: { id: 'userid', …
Run Code Online (Sandbox Code Playgroud)

bots azure direct-line-botframework azure-bot-service

1
推荐指数
1
解决办法
3360
查看次数