botframework - 在 Teams 机器人中获取图形兼容的团队和对话 ID
问题描述
我正在尝试在我的机器人应用程序中使用 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。
从 README 中,您可以获得团队 ID:
var teamInfo = await teamsContext.Operations.FetchTeamDetailsAsync(incomingTeamId);
这将在teamInfo.AadGroupId
其中并被格式化为 GUID。
推荐阅读
- python - 多个分类变量的直方图
- erlang - 从 Elixir 中的 Code.eval 字符串获取地图值
- java - 如何将项目中使用的语言从 Kotlin 更改为 Java
- python - 去掉“啊”
- oracle - SQL 触发器覆盖列中的数据
- python - 在 Python 的函数中使用 range()
- github - 动态检索 GitHub Actions 机密
- xml - ServiceStack 服务无法以 Json 和 XML 形式返回动态响应对象
- amazon-web-services - 提交后如何在 Redshift 过程中获取结果集?
- python - 如何在python中的空列表上制作if语句