Microsoft Graph API Query работает в проводнике, но не в клиентской библиотеке Microsoft Graph .NET - PullRequest
2 голосов
/ 18 октября 2019

У меня есть сайт SharePoint, и в папке «Документы» у меня есть файл Excel. Я хочу сделать определенный вызов 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();

Когда я пытаюсь выбрать определенную папку внутри этого корня, она также работает в графическом обозревателе:

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 вместо, но это также не удалось.

1 Ответ

3 голосов
/ 18 октября 2019

Если вы хотите, чтобы он использовал путь, который вы должны использовать 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();
...