【发布时间】:2020-12-16 22:52:47
【问题描述】:
我正在使用 Microsoft Bot Framework v4 for C# 开发技能消费者机器人,我的技能是在 Bot Framework Composer 中开发的对话机器人,我的问题是:是否可以在显示之前处理从技能机器人收到的活动给用户?这样做的原因是因为我想发送一个 ID 代码(识别数据库中的真实消息)作为技能的响应,并使用此 ID 获取在连接到我的技能使用者的数据库中注册的真实答案机器人。然后向用户展示真实的答案。我在官方 Bot Framework 文档中看到,技能处理程序用于接收技能 (https://docs.microsoft.com/en-us/azure/bot-service/skill-implement-consumer?view=azure-bot-service-4.0&tabs=cs#skill-client-and-skill-handler) 的活动。
官方文档中的技能处理描述:
我检查了技能处理程序类,我看到了以下方法:
protected override Task OnDeleteActivityAsync(ClaimsIdentity claimsIdentity, string conversationId, string activityId, CancellationToken cancellationToken = default);
protected override Task<ResourceResponse> OnReplyToActivityAsync(ClaimsIdentity claimsIdentity, string conversationId, string activityId, Activity activity, CancellationToken cancellationToken = default);
protected override Task<ResourceResponse> OnSendToConversationAsync(ClaimsIdentity claimsIdentity, string conversationId, Activity activity, CancellationToken cancellationToken = default);
protected override Task<ResourceResponse> OnUpdateActivityAsync(ClaimsIdentity claimsIdentity, string conversationId, string activityId, Activity activity, CancellationToken cancellationToken = default);
这种方法是否可以帮助获得我正在寻找的东西?如果是,我应该如何使用它,或者我该怎么办?
我希望你能帮助我。
PD:对不起我的英语。我来自秘鲁:D
【问题讨论】:
-
技能消费者是在 Composer 中构建的,还是只是技能?
-
@Kyle Delaney 只是技能。技能消费者是用 C# 构建的
-
这应该不会太难。您是否尝试过实现自己的技能处理程序并覆盖
OnSendToConversationAsync和OnReplyToActivityAsync? -
你还在做这个吗?
标签: c# azure-bot-service botframework