我正在尝试在我的机器人应用程序的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();
挑战在于,使用TeamID调用此命令,其格式为“ 19:7a81d1b1c0b24ac192de1c3d5cfd5618@thread.skype”不起作用,而是需要将TeamID指定为标准GUID(在这种情况下为d12f244e-fd24-4430 -a58a-1b2650ba8997)。有没有办法在这两种ID格式之间转换?有什么细节可以说明它们为何与众不同吗?
答案 0 :(得分:2)
可以!
您必须使用Microsoft.Bot.Builder.Teams
Package / GitHub。
从自述文件中,您可以获得团队ID:
var teamInfo = await teamsContext.Operations.FetchTeamDetailsAsync(incomingTeamId);
该文件将位于teamInfo.AadGroupId
中,其格式设置为GUID。