从 dotnet 核心应用 returns 调用 Microsoft 图形 API 未找到

Calling Microsoft graph API from dotnetcore app returns NotFound

我正在尝试使用用户名中的图形 API 从 SharePoint 获取项目,所有这些都是使用 oauth 在 .net core 3.1 网络应用程序中完成的。当我请求 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();

其中:

奇怪的是,直到我只请求驱动器:

var searchResult = await graphServiceClient
                    .Sites[$"{SharePointSiteId}"]
                    .Drives[$"{SharePointDocumentLibraryId}"]
                    .Request()
                    .GetAsync();

一切顺利。

奇怪的事情 2:如果我使用项目标识符 {InvoicesFolderId} 与同一用户同时使用 Graph 资源管理器调用 API,它会很好地返回其子项。 不用说,用户可以登录到 SPS 站点并为所欲为。 :)

我能够重现在 C# 中从 Graph .Net SDK 调用时抛出的相同异常。采用由 SDK 生成的完全相同的 URL 并在 Graph Explorer 中进行测试也成功。我建议在 Graph .Net SDK repo.

上打开一个问题