Получение элементов диска Microsoft Graph по пути с помощью .NET SDK

#c# #onedrive #microsoft-graph-api

#c# #onedrive #microsoft-graph-api

Вопрос:

Как указано в документации, используя Microsoft Graph REST API, вы можете (среди прочих опций) получить элемент по идентификатору или пути. Это работает нормально, как и ожидалось:

 GET /me/drive/items/{item-id}/children
GET /me/drive/root:/{item-path}:/children
  

Используя .NET SDK, я могу получить папку по идентификатору (т. Е. В первом случае):

 var items = await graphClient.Me.Drive.Items[myFolderId].Children.Request().GetAsync();
  

Однако я не смог найти, как (используя .NET SDK) сделать то же самое, но указав путь вместо идентификатора (т. Е. Второй случай).

Я не хочу находить идентификатор пути, который я уже знаю, чтобы создать для него запрос. Верно?

Боюсь, невозможно сделать это с помощью текущего SDK (клиентская библиотека Microsoft Graph 1.1.1)?

Комментарии:

1. Попробуйте использовать клиентскую библиотеку Microsoft Graph 1.2.1 . Она работает с идентификатором папки.

Ответ №1:

Вот как:

 var items = await graphClient.Me.Drive.Root
                  .ItemWithPath("/this/is/the/path").Children.Request().GetAsync();
  

Используйте только простой путь. Не включайте «:» и не включайте «/drive / root:/».

теперь, когда я это вижу, это было очевидно…

Комментарии:

1. К сожалению, это не работает для сайта drive / SharePoint организации. Идентификатор папки (который должен быть найден первым), похоже, является единственным способом. : (

2. Сначала я нахожу свой TeamDrive (и его идентификатор) с помощью Group API, а затем вы можете использовать: var childItemsPage = await graphClient.Drives[teamDriveId].Root .ItemWithPath(folderPath).Children.Request().GetAsync();

3. Можем ли мы получить пример того, что нужно сохранить в «/ this / is / the/ path»?

Ответ №2:

Чтобы использовать Microsoft Graph SDK с Office365 для бизнеса / Sharepoint / Teams, замените «Me» в коде на «Groups [TeamID / groupId]».

Вот так:

 var items = await graphClient.Groups["teamId/groupId"].Drive.Root
    .ItemWithPath("/this/is/the/path").Children.Request().GetAsync();
  

Если вы используете Microsoft Graph Explorer, вы можете узнать идентификатор своей команды / группы:
https://developer.microsoft.com/en-us/graph/graph-explorer

Комментарии:

1. Как вы получаете путь к элементу DriveItem в первую очередь?