图 API:Microsoft Teams 频道中应用的 ContentUrl

问题描述

我正在尝试使用 Graph API 获取 Microsoft Teams 频道中的选项卡。我可以看到 NoteBook、Forms、Stream 应用程序的 contentUrl 没有指向后端 SharePoint URL,而是指向特定于应用程序的 URL。例如

表单的 ContentURL 是:"contentUrl": "https://forms.office.com/Pages/TeamsDesignPage.aspx?Host=Teams&lang={locale}&groupId={groupId}&tid={tid}&teamsTheme={theme }&upn={upn}&fragment=FormId%3DudjZfPy8PU-0duIp2_KYZNPLlXpeZPZDmWARuiVR2atURDRMQkNSQU1KTFpWNk5CUkVXNE9aMExTUiQlQCN0PWcu",

Notebook 的 ContentURl 格式为:https://www.onenote.com/teams/TabContent?notebookSource=New&notebookSelfUrl=https%3A%2F%2Fwww.onenote.com%2Fapi%2Fv1.0%2FmyOrganization%2Fgroups%2F7a95cbd3-645e-43f6-9960-11ba2551d9ab%2Fnotes%2Fnotebooks%2F1-6dc4ac26-d65a-4a73-9452-115f850ae7a8&oneNoteWebUrl= ......

谁能告诉我这些特定于应用程序的 URL 如何映射到后端 SharePoint URL?例如。我知道 OneNote 存储在 SharePoint 中,但如果我必须使用 ContentURL 在 SharePoint 中获取 OneNote 的位置,似乎没有任何简单的映射。如果有人对此有任何想法,请告诉我。

解决方法

Microsoft Teams 使用 SharePoint Online 存储团队的文件。团队中的每个频道都是团队 SharePoint 网站集中“文档”库中的一个文件夹。

有时需要访问代表 SharePoint 中频道文件夹的基础 SharePoint 对象才能执行特定的 SharePoint 操作。

您可以通过在 https://graph.microsoft.com/v1.0/groups/{TeamId}/sites/root/webUrl

访问图形 API 来获取团队的 SharePoint 网址

重命名的频道保留原始文件夹名称,因此您不能依赖频道名称来构建指向 SharePoint 中频道文件夹的 URL。如果频道从未重命名,则以下内容将起作用,但这不适用于重命名的频道或私人频道 {TeamWebUrl}/Shared Documents/{ChannelName}

幸运的是,在 Graph API 的 Beta 端点下添加了新的频道属性,为我们提供了 Teams 中频道的基础 SharePoint Url。 enter image description here

请参阅此 documentation 以详细了解 API 的用法以及调用此端点所需的相关权限。

如果有帮助,请点赞。谢谢!