【发布时间】:2021-05-11 21:58:03
【问题描述】:
我有一个用户在将我的 Microsoft Teams 机器人安装到他们的团队时遇到了问题。这是他们所看到的:
-
用户将机器人安装到第一个团队。我们收到了 conversationUpdate 事件,并向该团队的 General 频道发送了欢迎消息。
-
用户尝试将机器人安装到第二个团队中。看来我们从未收到过 conversationUpdate 事件。由于我们没有收到 conversationUpdate 事件,因此我们从未向第二个团队发送欢迎消息。用户已尝试卸载并重新安装机器人,但随后的安装尝试似乎也没有触发对话更新事件。
用户发送了团队 1 和 2 的已安装应用程序列表的屏幕截图,其中列出了我的机器人已为两个团队安装。我们还可以向团队 1 和团队 2 发送消息。
为什么团队 2 不向我们发送对话更新事件?我们不仅依靠此对话更新事件来发送欢迎消息,我们还保存了对话更新事件有效负载中包含的 serviceUrl、tenantId 和 teamId。因此,如果我们没有得到这个 conversationUpdate 事件负载,这会在稍后尝试发送消息时导致问题。
有谁知道为什么我们只看到他们安装我们应用程序的第一个团队的 conversationUpdate 事件?是否有任何可能影响此的 MS Teams 设置?我知道 2021 年 4 月初发生了一次中断,今天 2021 年 4 月 27 日又发生了一次中断,但我们上周在 4 月 22 日/23 日看到了这些问题,所以我认为这与中断无关。
还有一些注意事项:
- 我们的其他用户均未报告此问题。
- 如果我收到没有tenantId/serviceUrl/teamId/generalChannelId 的conversationUpdate 事件,我会在日志中看到错误。如果我尝试发送欢迎消息并收到非 200 响应,我也会在日志中看到错误。这让我相信我们完全没有收到 conversationUpdate 事件,因为我没有看到任何错误解析 conversationUpdate 事件或发送欢迎消息。
如果我能提供更多有用的信息,请告诉我。
【问题讨论】:
-
(1) 将匿名用户添加到会议时,membersAdded 有效负载对象没有 aadObjectId 字段 - 这是设计使然。我不确定您是否遇到这种情况?
-
(2) 您需要了解,当您的机器人从团队中移除或用户从机器人所在的团队中移除时,payload 中包含 membersRemoved 对象的对话更新事件会被发送被添加。 Microsoft Teams 还在 channelData 对象中添加了 eventType.teamMemberRemoved。与 membersAdded 对象一样,您应该为您的机器人的 App ID 解析 membersRemoved 对象以确定谁被删除。
-
@Mason Stricklin - 请让我们知道这是否有助于澄清。
标签: microsoft-graph-api botframework office365 microsoft-teams microsoft-graph-teams