根据AAD ID检索小组用户ID

时间:2020-05-06 09:55:14

标签: azure botframework bots microsoft-teams azure-ad-graph-api

我正在尝试开始预定的主动对话(机器人在预定的时间启动对话)。 我设法基于Graph API获取了用户的AAD ID,但它与Teams用户ID不匹配。尝试了2个多小时以获得正确的ID,但是我不知道如何找到它。我应该采取的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

看看get the chat thread ID的Microsoft Graph API。

为用户安装该应用程序后,该漫游器将收到一个会话更新事件,该事件将包含必要的信息以使其发送主动消息。有关更多信息,请参见Bot事件。

如果您丢失了chatThreadId,则可以通过以下方式再次找到它:

GET /users/{user-id}/chats?$filter=installedApps/any(a:a/teamsApp/id eq '{teamsAppid}')

但是,这仅适用于个人范围!我的建议是确保您捕获安装后触发的conversationUpdate,并将用户详细信息保留在数据库中。

答案 1 :(得分:0)

我很好奇您如何尝试“匹配”这些?无论如何,我认为它们不打算以任何方式进行匹配(aadObjectId Guid和“ 29:...”用户ID)。因此,您应该将映射存储在您的一侧(数据库或类似数据库)。无论如何,您都需要存储ServiceUrl和ConversationId才能进行主动消息传递,因此也只需添加userid。