Botframework 在团队机器人中获取图形兼容的团队和会话ID

Botframework 在团队机器人中获取图形兼容的团队和会话ID,botframework,microsoft-graph-api,microsoft-teams,Botframework,Microsoft Graph Api,Microsoft Teams,我正在尝试在我的bot应用程序的团队中使用新的消息操作功能。我可以调用任务模块,但我希望让bot读取完整消息线程的内容(而不仅仅是传递到上下文中的第一条消息)。但是,当我检查ChannelData时,我得到以下结果: ChannelData {{ "channel": { "id": "19:5e4ce488280b467198400257473cfd4e@thread.skype" }, "team": { "id": "19:7a81d1b1c0b24ac192d

我正在尝试在我的bot应用程序的团队中使用新的消息操作功能。我可以调用任务模块,但我希望让bot读取完整消息线程的内容(而不仅仅是传递到上下文中的第一条消息)。但是,当我检查ChannelData时,我得到以下结果:

ChannelData {{
  "channel": {
    "id": "19:5e4ce488280b467198400257473cfd4e@thread.skype"
  },
  "team": {
    "id": "19:7a81d1b1c0b24ac192de1c3d5cfd5618@thread.skype"
  },
  "tenant": {
    "id": "8c6ae172-a3ea-4f50-994d-a0256822697f"
  },
  "source": {
    "name": "compose"
  }
}}
看起来您应该能够使用以下方式在通道中获取消息:

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指定为标准GUID(在本例中为d12f244e-fd24-4430-a58a-1b2650ba8997)。有没有办法在这两种ID格式之间进行转换?有什么东西可以详细说明它们为什么不同吗?

你可以

您必须使用/

从自述文件中,您可以获得团队ID:

var teamInfo=wait teamsContext.Operations.FetchTeamDetailsAsync(incomingTeamId);
它将位于
teamInfo.AadGroupId
中,并被格式化为GUID。

您可以

您必须使用/

从自述文件中,您可以获得团队ID:

var teamInfo=wait teamsContext.Operations.FetchTeamDetailsAsync(incomingTeamId);

这将在
teamInfo.AadGroupId
中,并被格式化为GUID。

谢谢,这为我提供了团队ID,它是一个拦截器,但是获取消息回复的方法调用仍然引发异常。看起来这些都被标记为受保护的API,这就是为什么我首先会遇到异常。对于任何想做同样事情的人,即使你有Group.ReadWrite.All,你仍然需要额外的权限才能访问这些API。哦,看起来在该软件包的v4.3 beta版中,FetchTeamDetailsAsync方法已被删除。需要使用FetchTeamDetailswithHttpMessageAsync代替读取兴趣。不确定我使用的是什么版本,但
FetchTeamDetailsAsync
昨天对我有效。很高兴你成功了!谢谢,这让我得到了团队ID,这是一个拦截器,但是获取消息回复的方法调用仍然抛出异常。看起来这些都被标记为受保护的API,这就是为什么我首先会遇到异常。对于任何想做同样事情的人,即使你有Group.ReadWrite.All,你仍然需要额外的权限才能访问这些API。哦,看起来在该软件包的v4.3 beta版中,FetchTeamDetailsAsync方法已被删除。需要使用FetchTeamDetailswithHttpMessageAsync代替读取兴趣。不确定我使用的是什么版本,但
FetchTeamDetailsAsync
昨天对我有效。很高兴你成功了!