我注意到Direct Line请求网址是这样的:https://localhost:8011/api/
在文档中.什么应该替换它?
我已经从botbuilder
Examples文件夹部署了一个todoBot示例项目.我在My bots
部分创建了一个机器人,结束点是:http://www.bigluntan.com:3978/api/messages
.我在Test connection to your bot
部分测试过,当我输入内容并发送它时,它正在工作.现在,我想试试Direct Line.所以我添加了Direct Line to Channels.但最困惑的部分是,如何调用此Direct Line 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
<!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私有密钥,机器人占据整个网页.我需要它显示在网页的右下角,当用户点击它时弹出为生活聊天.请有人指导我实现这一目标.谢谢
每当我使用 Microsoft Bot Framework V4 在 Visual Studio 中创建基本机器人项目时,都会创建一个带有 .net 核心的项目。我希望使用 .Net Framework 创建/实施机器人项目。
如何使用 .net 框架创建/构建 Bot 项目(Microsoft Bot Framework V4)?
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
“您可以使用Direct Line API启用机器人与您自己的客户端应用程序之间的通信。”
根据我的观察,Bot(使用botframework创建)本身就是一个端点。为什么我们不能直接使用Bot的API与机器人进行通信?为什么我们需要直线?
我正在尝试通过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) 所以,我目前正在使用这个:
<!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) botframework ×8
azure ×2
botconnector ×2
bots ×2
c# ×2
node.js ×2
.net ×1
.net-core ×1
chatbot ×1