如何通过Graph API从DriveItem确定所属的Channel?
先定位到Channel对应的顶层文件存储文件夹
如果目标DriveItem是子文件/子文件夹,先调用GET /drive/items/{item-id}/parentReference向上追溯父文件夹,直到找到Teams创建的那个顶层文件夹(也就是Channel的filesFolder)。获取该文件夹所属的Team信息
从目标文件夹的详情(GET /drive/items/{folder-id})里拿到siteId,再调用GET /sites/{site-id}获取站点信息。站点的webUrl里通常包含Team的标识,或者直接从站点关联的Group信息里找到Team ID(因为Team对应Office 365 Group,站点属于该Group)。枚举Team下的Channels并匹配文件夹ID
调用GET /teams/{team-id}/channels拿到该Team的所有Channel,逐个调用GET /teams/{team-id}/channels/{channel-id}/filesFolder获取每个Channel对应的文件夹ID,和步骤1里的目标文件夹ID比对,匹配上的就是对应的Channel。快捷方式:检查列表项扩展属性
尝试调用GET /drive/items/{folder-id}/listItem?$select=fields,查看返回的字段里是否存在Microsoft.Teams.ChannelId这类扩展属性,如果有可以直接拿到Channel ID,省去枚举步骤。
注意:只有Channel对应的顶层文件夹才会关联Channel信息,深层子文件/文件夹需要先追溯到顶层文件夹才能查询。
内容的提问来源于stack exchange,提问作者David Churchland

