Microsoft graph api 当我的机器人安装到一个新团队时,有没有理由不接收conversationUpdate(membersAdded)事件?

Microsoft graph api 当我的机器人安装到一个新团队时,有没有理由不接收conversationUpdate(membersAdded)事件?,microsoft-graph-api,botframework,office365,microsoft-teams,microsoft-graph-teams,Microsoft Graph Api,Botframework,Office365,Microsoft Teams,Microsoft Graph Teams,我有一个用户在将我的Microsoft Team bot安装到他们的团队时遇到问题。以下是他们看到的: 用户已将bot安装到第一个团队。我们收到了conversationUpdate事件,并向该团队的通用频道发送了欢迎信息 用户试图将bot安装到第二个团队中。我们似乎从未收到conversationUpdate事件。由于我们没有收到conversationUpdate事件,我们从未向第二团队发送过欢迎信息。用户已尝试卸载并重新安装bot,但随后的安装尝试似乎也不会触发conversationU

我有一个用户在将我的Microsoft Team bot安装到他们的团队时遇到问题。以下是他们看到的:

  • 用户已将bot安装到第一个团队。我们收到了conversationUpdate事件,并向该团队的通用频道发送了欢迎信息

  • 用户试图将bot安装到第二个团队中。我们似乎从未收到conversationUpdate事件。由于我们没有收到conversationUpdate事件,我们从未向第二团队发送过欢迎信息。用户已尝试卸载并重新安装bot,但随后的安装尝试似乎也不会触发conversationUpdate事件

  • 用户发送了团队1和2的已安装应用程序列表的屏幕截图,其中列出了两个团队已安装的我的机器人。我们还可以向第1组和第2组发送消息

    为什么团队2不向我们发送conversationUpdate事件?我们不仅依赖此conversationUpdate事件发送欢迎消息,还保存conversationUpdate事件负载中包含的serviceUrl、tenantId和teamId。因此,如果我们没有得到这个conversationUpdate事件负载,这将在稍后尝试发送消息时引起问题

    有人知道为什么我们只看到他们安装我们应用程序的第一个团队的conversationUpdate事件吗?是否有任何MS团队设置会影响此操作?我知道在2021年4月初有一次大修,今天是2021年4月27日又有一次大修,但我们上周在4月22日/23日看到了这些问题,因此我认为这与大修无关

    还有几点注意:

    • 我们的其他用户均未报告此问题
    • 如果我收到的conversationUpdate事件没有tenantId/serviceUrl/teamId/GeneralChannel ID,我会在日志中看到一个错误。如果我试图发送欢迎消息并收到非200响应,我也会在日志中看到错误。这让我相信我们没有完全收到conversationUpdate事件,因为我没有看到任何解析conversationUpdate事件或发送欢迎消息的错误

    如果我能提供更多有帮助的信息,请告诉我。

    发布答案以获取更多信息

    从@Dev comments复制

    (1) 将匿名用户添加到会议时,membersAdded有效负载对象没有aadObjectId字段-这是设计的。我不确定你是否有这种情况


    (2) 您需要了解,当您的bot从团队中移除,或者用户从添加了bot的团队中移除时,将发送有效负载中带有membersRemoved对象的conversationUpdate事件。Microsoft团队还将eventType.teamMemberRemoved添加到channelData对象中。与membersAdded对象一样,您应该为您的机器人的应用程序ID解析membersRemoved对象,以确定删除了谁。

    (1)当匿名用户添加到会议时,membersAdded负载对象没有aadObjectId字段-这是出于设计。我不确定您是否有这种情况?(2)您需要了解,当您的机器人从团队中移除,或者用户从添加机器人的团队中移除时,将发送有效负载中membersRemoved对象的conversationUpdate事件。Microsoft团队还将eventType.teamMemberRemoved添加到channelData对象中。与MembersAded对象一样,您应该为您的机器人的应用程序ID解析membersRemoved对象,以确定谁被删除。@Mason Stricklin-请告诉我们这是否有助于澄清。