Microsoft Graph API 查询适用于资源管理器,但不适用于 Microsoft Graph .NET 客户端库

Microsoft Graph API Query works on Explorer but not in Microsoft Graph .NET Client Library

我有一个 SharePoint 站点,在一个文档文件夹中,我有一个 Excel file.I 想要进行特定的 Microsoft Graph 调用,以获取文件所在位置的详细信息。当我在 Graph Explorer 中测试查询时,这按预期工作:

https://graph.microsoft.com/v1.0/sites/b8b6d734-2f94-4070-ae22-xxxxxxxxxxxx/drive/root

当我尝试使用 Microsoft Graph .NET 客户端库在控制台应用程序中使用查询时,测试查询执行得很好:

var resultPage = await graphClient
  .Sites["b8b6d734-2f94-4070-ae22-xxxxxxxxxxxx"]
  .Drive.Root
  .Request()
  .GetAsync();

当我尝试 select 特定文件夹 该根目录中时,它也适用于 Graph Explorer:

https://graph.microsoft.com/v1.0/sites/b8b6d734-2f94-4070-ae22-xxxxxxxxxxxx/drive/root/children/{foldername}/children/

但是当我在我的应用程序中尝试同样的查询时,它返回了一个错误。

代码:

var resultPage = await graphClient
  .Sites["b8b6d734-2f94-4070-ae22-xxxxxxxxxxxx"]
  .Drive
  .Root
  .Children["foldername"]
  .Children
  .Request()
  .GetAsync();

回复:

Error getting events: 
  Code: itemNotFound
  Message: The resource could not be found.

我也尝试使用文件夹的 id 而不是 id 但同样失败了。

如果你想让它使用你需要使用的路径 ItemWithPath:

var resultPage = await graphClient
  .Sites["b8b6d734-2f94-4070-ae22-xxxxxxxxxxxx"]
  .Drive
  .Root
  .ItemWithPath("/{foldername}")
  .Children
  .Request()
  .GetAsync();

您也可以像这样通过 DriveItem id 检索它:

var resultPage = await graphClient
  .Sites["b8b6d734-2f94-4070-ae22-xxxxxxxxxxxx"]
  .Drive
  .Items["{item-id}"]
  .Children
  .Request()
  .GetAsync();