我有一个场景,MessagesController 上有一个自定义 AttributeFilter。
[BotAuthentication]
[AuthorizeToken]
public virtual async Task<HttpResponseMessage> Post([FromBody]Activity activity)
在AuthorizeToken
过滤器中,如果连接的服务令牌无效,我想向 cortana 发送消息并结束对话。我正在使用 ConnectorClient 对象将回复从机器人发送到 Cortana 频道。
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message)){
IConnectorClient client = scope.Resolve<IConnectorClient>();
await client.Conversations.ReplyToActivityAsync(reply);}
要结束对话,我想ActivityTypes.EndOfConversation
使用 ConnectorClient 发送消息。EndOfConversation 消息不起作用,因为范围内没有上下文可在context.Done
其后写入 a。
我正在尝试实现本文的 EndOfConversation 部分所述的内容https://docs.microsoft.com/en-us/cortana/tutorials/bot-skills/teach-your-bot-to-speak。不同之处在于我试图在 MessagesController 将活动发送到 RootDialog 之前实现这一点。这在技术上是否可行,还是我必须通过对话?对此的任何指示都会有所帮助!