【问题标题】:Calling Microsoft graph API from dotnetcore app returns NotFound从 dotnet 核心应用程序调用 Microsoft 图形 API 返回 Not Found
【发布时间】:2020-04-15 21:47:32
【问题描述】:

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

【问题讨论】:

    标签: .net-core web-applications microsoft-graph-api microsoft-graph-sdks microsoft-graph-files


    【解决方案1】:

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

    【讨论】:

    • 嘿,感谢您复制此内容,我也在回购中添加了一个问题link。我们会看看这是否真的是一个错误。
    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 2019-08-01
    • 2021-04-17
    • 2017-03-06
    • 2017-12-18
    • 2023-04-01
    • 2018-07-24
    相关资源
    最近更新 更多