我正在尝试以用户的名义使用 Graph API 从 SharePoint 获取项目,所有这些都使用 oauth 在 .net core 3.1 Web 应用程序中完成。当我请求 SharePoint 文档库中的特定项目时,我收到以下 ServiceException:
ex = {"Code: itemNotFound\r\nMessage: The resource could not be found.\r\nInner error:\r\n\tAdditionalData:\r\n\trequest-id: 7605d475-5967-481e-a16c-ab1fad610ef9\r\n\tdate: 2020-04-15T21:27:48\r\nClientRequestId: 7605d475-5967-481e-a16c-ab1fad610ef9\r\n"}
我的调用函数如下:
var searchResult = await graphServiceClient
.Sites[$"{SharePointSiteId}"]
.Drives[$"{SharePointDocumentLibraryId}"]
.Items[$"{InvoicesFolderId}"]
.Children
.Request()
.GetAsync();
在哪里:
- SharePointSiteId 是完全限定的 SPS 网站 ID
- SharePointDocumentLibraryId 文档库的 ID
- 我想在其中枚举子元素的文件夹的 InvoicesFolderId id
奇怪的是,直到我只请求驱动器:
var searchResult = await graphServiceClient
.Sites[$"{SharePointSiteId}"]
.Drives[$"{SharePointDocumentLibraryId}"]
.Request()
.GetAsync();
一切顺利。
奇怪的事情 2:如果我使用 Graph 资源管理器在同一时间使用项目标识符 {InvoicesFolderId} 调用 API,它会很好地返回它的孩子。不用说,用户可以登录到 SPS 站点并为所欲为。:)