每当我使用 Microsoft Bot Framework V4 在 Visual Studio 中创建基本机器人项目时,都会创建一个带有 .net 核心的项目。我希望使用 .Net Framework 创建/实施机器人项目。
如何使用 .net 框架创建/构建 Bot 项目(Microsoft Bot Framework V4)?
return new Promise((resolve, reject) => {
x = context.sendActivity({
text: 'hi',
attachments: [CardFactory.adaptiveCard(menuJson)]
})
Run Code Online (Sandbox Code Playgroud)
我正在尝试发送一个自适应卡,其中包含一个 Input.text 字段......现在我的问题是如何使用上下文对象从我的程序中的用户获取输入数据?
即如何使用 node js 在 bot framework v4 中处理自适应卡?
我使用 MS Teams 的应用程序工作室为 Bot 应用程序创建清单。我已经上传了全彩图片以及透明的outlone。但是该图标未显示在聊天窗口中。只有默认图标是可见的。
任何想法,我该如何解决这个问题?非常感谢!
我使用 microsoft bot framework v4 sdk 创建了一个聊天机器人。我想将机器人用户和机器人消息记录到 Cosmos db。
我只能使用以下博客记录用户消息https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-v4-storage?view=azure-bot-service-4.0 &tabs=csharp#using-cosmos-db。
我希望记录用户和机器人的响应。
<!DOCTYPE html>
<html>
<head>
<title>Avanade D365 F&O Assets BOT</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--
For demonstration purposes, we are using development branch of Web Chat at "/master/webchat.js".
When you are using Web Chat for production, you should use the latest stable at "/latest/webchat.js".
Or locked down on a specific version "/4.1.0/webchat.js".
-->
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<style>
html, body {
height: 100%
}
body {
margin: 0
}
#webchat {
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div id="webchat" role="main">
<iframe …Run Code Online (Sandbox Code Playgroud)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
我开始在 Microsoft 的 Bot Framework V4 中构建一个对话框,为此我想使用提示的自定义验证。几个月前,当 4.4 版发布时,一个新属性“AttemptCount”被添加到PromptValidatorContext 中。此属性提供有关用户回答多少次的信息。显然,如果用户被多次重新提示,最好结束当前对话。但是,我没有找到摆脱这种状态的方法,因为与 DialogContext(或 WaterfallStepContext)不同,给定的 PromptValidatorContext 不提供替换对话框的方法。我在github上问了这个问题,但没有得到答案。
public class MyComponentDialog : ComponentDialog
{
readonly WaterfallDialog waterfallDialog;
public MyComponentDialog(string dialogId) : (dialogId)
{
// Waterfall dialog will be started when MyComponentDialog is called.
this.InitialDialogId = DialogId.MainDialog;
this.waterfallDialog = new WaterfallDialog(DialogId.MainDialog, new WaterfallStep[] { this.StepOneAsync, this.StepTwoAsync});
this.AddDialog(this.waterfallDialog);
this.AddDialog(new TextPrompt(DialogId.TextPrompt, CustomTextValidatorAsync));
}
public async Task<DialogTurnResult> StepOneAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
var promptOptions = new PromptOptions
{
Prompt = MessageFactory.Text("Hello from text prompt"), …Run Code Online (Sandbox Code Playgroud) 我用 v3 (C#) SDK 创建了一个机器人,并且欢迎信息过去工作得很好,没有任何汗水。它在生产中仍然对我有用。代码在 HandleSystemMessage 中像这样处理 -
.. 为清楚起见,删除了 v3 代码附加代码...
else if (message.Type == ActivityTypes.ConversationUpdate)
{
// Handle conversation state changes, like members being added and removed
// Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
// Not available in all channels
//Code to show Welcome Message
if (message.MembersAdded.Any(o => o.Id == message.Recipient.Id))
{
var reply = message.CreateReply();
reply.Attachments = new List<Attachment>();
// Create the attachment.
Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = AdaptiveCardHelper.GetOptionsCard() …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 bot 框架 v4 上实现主动消息,它可以工作,但只能使用 BotCallback 函数上的字符串,我需要传递自定义文本,但 ContinueConversationAsync 似乎不允许它
public async Task<bool> SendProactiveMessage(MensajeExterno mensajeExterno)
{
var referenciaDeConversacion = ObtenerReferenciaConversacion(mensajeExterno.ConversationId);
var continuationActivity = referenciaDeConversacion.GetContinuationActivity();
if (referenciaDeConversacion == null) return false;
await ((BotAdapter)_adapter).ContinueConversationAsync(_appId, referenciaDeConversacion, BotCallback, default(CancellationToken));
return true;
}
private ConversationReference ObtenerReferenciaConversacion(string conversationId)
{
return new ConversationReferenceModulo().ObtenerConversationReference(conversationId);
}
public MensajeroDefaultModulo(IBotFrameworkHttpAdapter adapter, IConfiguration configuration)
{
_adapter = adapter;
_appId = configuration["MicrosoftAppId"];
if (string.IsNullOrEmpty(_appId))
{
_appId = Guid.NewGuid().ToString(); //if no AppId, use a random Guid
}
}
private async Task BotCallback(ITurnContext turnContext, CancellationToken cancellationToken) …Run Code Online (Sandbox Code Playgroud) 我创建了一个主动机器人,当用户开始与机器人对话时,它基本上会向用户提出某些问题。该机器人部署在 Microsoft Teams 环境中。有什么方法可以向频道中的机器人发送自动消息?我知道可以通过使用特定团队公开的 webhook url 或使用 MS Flow 使用 powershell 发送消息。但是我想在消息中提及机器人(例如@mybothandle),以便机器人开始自行提问,而不是要求用户开始对话(通过手动提及机器人)但找不到提及的方式。欢迎您提出建议。
botframework ×10
c# ×5
bots ×2
.net-core ×1
asp.net-core ×1
azure ×1
chatbot ×1
logging ×1
node.js ×1