首页 > 解决方案 > 如何在图形查询中引用冒号

问题描述

我有一些代码可以获取 SharePoint 网站中列表的详细信息,然后想知道是否仍然存在同名的列表。这工作正常,除了包含冒号的列表名称 - 我发现 Graph 误解了冒号并“破坏”了 URL。

例如,在 Graph Explorer 中,当我给它以下查询时:

https://graph.microsoft.com/v1.0/sites('mysite.sharepoint.com,aa-aa-aa,bb-bb-bb')/lists('19:abcdef@thread.tacv2_wiki')

错误响应在“消息”属性中包含以下内容:

The expression \"sites('mysite.sharepoint.com,aa-aa-aa,bb-bb-bb')/lists('19')/abcdef@thread.tacv2_wiki\" is not valid. 

请注意,它拆分了原始 URL,认为冒号是路径中新段的开始,即使它在引号内。

我尝试了各种对冒号的引用(%3A 和 %253A 和 %25253A)以及不同样式的引号字符,但它们要么返回相同的错误,要么给出解析错误。

更多信息 - 我特别想按名称而不是原始 id 搜索(这会更容易),我在代码中使用 Graph Managed API 但它会产生相同的错误(你会认为它会在内部知道如何引用),该列表实际上是在 Teams 站点中创建的用于管理频道信息的隐藏列表。

标签: microsoft-graph-api

解决方案


我也能够重现您的问题,但作为一种解决方法,您可以使用过滤器查询参数通过使用以下查询来获取列表。

https://graph.microsoft.com/v1.0/sites/soaadteam.sharepoint.com,c1178396-d845-46fa-bc0c-453d2951dad5,19ee9a1e-001d-48f1-9ee8-b0adfde54e45/lists?$filter=displayName eq '19:abcdef@thread.tacv2_wiki'

在此处输入图像描述


推荐阅读