0

我正在尝试以用户的名义使用 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 站点并为所欲为。:)

4

1 回答 1

1

我能够重现从 C# 中的 Graph .Net SDK 调用时引发的相同异常。使用 SDK 生成的完全相同的 URL 并在 Graph Explorer 中进行测试也是成功的。我建议在Graph .Net SDK repo上打开一个问题。

于 2020-04-21T17:22:40.827 回答