【问题标题】:MS Teams Dialog Bot Event Not Fired when message is sent from outside the Teams Bot从 Teams Bot 外部发送消息时,未触发 MS Teams Dialog Bot 事件
【发布时间】:2021-04-01 04:36:01
【问题描述】:

我正在从外部(即 Windows 窗体应用程序)向我的 MS Teams 聊天机器人发送关于现有对话的消息。

ChannelAccount userAccount = originalActivity.From; 
ChannelAccount botAccount = new ChannelAccount("GenerateReport", "AzureFunction");

var message = new Activity();//Microsoft.Bot.Schema.Activity.CreateEventActivity();
message.Type = ActivityTypes.Message;
message.From = originalActivity.Recipient; //new ChannelAccount("GenerateReport", "AzureFunction");//botAccount;
message.Value = originalActivity; 
((Activity)message).Text = "LongOperationResponse";
message.Recipient = originalActivity.From;// userAccount;
message.ChannelId = originalActivity.ChannelId;
message.Conversation = originalActivity.Conversation;

ResourceResponse response21= await connectorClient.Conversations.SendToConversationAsync((Activity)message);

消息活动发送成功,消息出现在聊天机器人对话中。

当 ma 团队聊天机器人收到上述消息时,我还想以某种方式捕获事件。 我在继承自 ActivityHandler 类的 DialogBot 类中附加了以下事件处理程序。

  • OnMessageActivityAsync
  • OnEventActivityAsync
  • OnTurnAsync

但是,当使用上述逻辑从机器人外部发送消息时,上述事件处理程序都不会被触发。

这些事件处理程序仅在用户在聊天机器人中键入消息时触发。

当团队的聊天机器人收到外部消息时应该触发哪个事件以及如何处理该事件。

请帮忙。

谢谢 加根

【问题讨论】:

  • 队外bot是什么意思?您如何将消息发送到机器人对话?您能否更详细地解释一下您的情况?
  • @Nikitha-MSFT 我正在使用以下文档 docs.microsoft.com/en-us/azure/bot-service/… 。在这里,一个长时间运行的任务被发送到 Azure Function,该函数在任务完成时向 Bot 发送 Activity 消息。
  • 所以您正在使用代码发送消息。该消息是使用机器人代码发送的。仅当消息由用户而不是机器人发送时才会触发事件。这是设计使然。
  • @Wajeed-MSFT 是的,需要帮助。
  • @Nikitha-MSFT 是的,我正在发送消息,但不使用机器人代码,而是使用外部应用程序中的代码。 Message.From 设置为 Bot,Message.Recipient 是 My Teams AadObjectID,即 My Teams 帐户。我尝试反转 From 和 Recipient 但结果相同,即消息出现在 Teams 聊天机器人窗口中,但在机器人代码中没有触发任何事件。

标签: event-handling bots microsoft-teams botframework


【解决方案1】:

这个问题有点不清楚,但现在阅读 cmets 我想我更好地理解它。您正在发送消息 作为 bot,但来自 bot 的外部(基本上是主动消息传递)。结果,您的机器人代码根本不会收到通知,因为从 Bot Framework 的角度来看,它为什么会告诉 正在发送消息 - 你会知道已经,当然。实际上,您只会收到通知:

  1. 当消息发送到您的机器人时
  2. 根据对话类型进一步定义。对于 1-1,您将收到所有消息到您的机器人。对于群聊或 Teams 频道对话,您将在您的 bot 被@提及的地方收到消息

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    相关资源
    最近更新 更多