在 Teams 机器人中获取图形兼容的团队和对话 ID
Getting graph-compatible Team and conversation IDs in a Teams bot
我正在尝试在我的机器人应用程序中使用 Teams 中的新消息操作功能。我可以获得要调用的任务模块,但我想让机器人读取完整消息线程的内容(而不仅仅是传递到上下文中的第一条消息)。但是,当我检查 ChannelData 时,我得到了这个:
ChannelData {{
"channel": {
"id": "19:5e4ce488280b467198400257473cfd4e@thread.skype"
},
"team": {
"id": "19:7a81d1b1c0b24ac192de1c3d5cfd5618@thread.skype"
},
"tenant": {
"id": "8c6ae172-a3ea-4f50-994d-a0256822697f"
},
"source": {
"name": "compose"
}
}}
看起来您应该能够使用 beta API 获取频道中的消息,如下所示:
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var replies = await graphClient.Teams["303d2c1c-f1c5-40ce-b68e-544343d7f42b"].Channels["19:fec4b0f2825d4c8c82abc09027a64184@thread.skype"].Messages["1555375673184"].Replies
.Request()
.GetAsync();
挑战在于,使用格式为“19:7a81d1b1c0b24ac192de1c3d5cfd5618@thread.skype”的 TeamID 调用它不起作用,而是需要将 TeamID 指定为标准 GUID(在本例中为 d12f244e -fd24-4430-a58a-1b2650ba8997)。有没有办法在这两种 ID 格式之间进行转换?是否有详细说明它们不同的原因?
你可以!
您必须使用 Microsoft.Bot.Builder.Teams
Package / GitHub。
从自述文件中,您可以获得团队 ID:
var teamInfo = await teamsContext.Operations.FetchTeamDetailsAsync(incomingTeamId);
这将在 teamInfo.AadGroupId
中并被格式化为 GUID。
我正在尝试在我的机器人应用程序中使用 Teams 中的新消息操作功能。我可以获得要调用的任务模块,但我想让机器人读取完整消息线程的内容(而不仅仅是传递到上下文中的第一条消息)。但是,当我检查 ChannelData 时,我得到了这个:
ChannelData {{
"channel": {
"id": "19:5e4ce488280b467198400257473cfd4e@thread.skype"
},
"team": {
"id": "19:7a81d1b1c0b24ac192de1c3d5cfd5618@thread.skype"
},
"tenant": {
"id": "8c6ae172-a3ea-4f50-994d-a0256822697f"
},
"source": {
"name": "compose"
}
}}
看起来您应该能够使用 beta API 获取频道中的消息,如下所示:
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var replies = await graphClient.Teams["303d2c1c-f1c5-40ce-b68e-544343d7f42b"].Channels["19:fec4b0f2825d4c8c82abc09027a64184@thread.skype"].Messages["1555375673184"].Replies
.Request()
.GetAsync();
挑战在于,使用格式为“19:7a81d1b1c0b24ac192de1c3d5cfd5618@thread.skype”的 TeamID 调用它不起作用,而是需要将 TeamID 指定为标准 GUID(在本例中为 d12f244e -fd24-4430-a58a-1b2650ba8997)。有没有办法在这两种 ID 格式之间进行转换?是否有详细说明它们不同的原因?
你可以!
您必须使用 Microsoft.Bot.Builder.Teams
Package / GitHub。
从自述文件中,您可以获得团队 ID:
var teamInfo = await teamsContext.Operations.FetchTeamDetailsAsync(incomingTeamId);
这将在 teamInfo.AadGroupId
中并被格式化为 GUID。