Почему @microsoft.graph.downloadUrl не заполняется при HTTP-вызове, но работает с Graph SDK?

Я пытаюсь получить @microsoft.graph.downloadUrl для элементов в списке SharePoint, используя простой HTTP-вызов API Microsoft Graph. Однако поле downloadUrl всегда возвращается пустым. Вот HTTP-запрос, который я использую:

GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?expand=driveItem(select=id,contentType,@microsoft.graph.downloadUrl)&$top=900

Когда я пытаюсь выполнить тот же запрос с помощью Microsoft Graph SDK, URL-адрес загрузки заполняется правильно:

var listItemsResponse = await graphServiceClient.Sites[site.Id].Lists[documentList.Id].Items.GetAsync((requestConfiguration) =>
{
    requestConfiguration.QueryParameters.Expand = new string[] { "driveItem" };
    requestConfiguration.QueryParameters.Select = new string[] { "id", "contentType" };
    requestConfiguration.QueryParameters.Top = 900;
});

bool hasDownloadUrl = driveItem.AdditionalData.TryGetValue("@microsoft.graph.downloadUrl", out object? downloadUrl);

🤔 А знаете ли вы, что...
С C# легко создавать библиотеки для работы с RESTful API и обмена данными по сети.


1
60
1

Ответ:

Решено

Обратите внимание, что свойство @microsoft.graph.downloadUrl не будет заполняться для папок SharePoint, имеющих тип содержимого «Папка».

У меня есть один сайт SharePoint, имеющий одну папку и несколько файлов разных типов, как показано ниже:

Когда я выполнил HTTP-запрос, свойство @microsoft.graph.downloadUrl не заполняется для тестовой папки, поскольку оно ContentType является «Папкой», как показано ниже:

GET https://graph.microsoft.com/v1.0/sites/siteId/lists/listId/items?expand=driveItem(select=id,@microsoft.graph.downloadUrl)&$top=500

Ответ:

Для остальных файлов SharePoint, где ContentType — «Документ», свойство @microsoft.graph.downloadUrl будет заполнено в ответ следующим образом:

GET https://graph.microsoft.com/v1.0/sites/siteId/lists/listId/items?expand=driveItem(select=id,@microsoft.graph.downloadUrl)&$top=500

Ответ:

Судя по вашему снимку экрана, вы не получаете URL-адрес загрузки для элемента диска, имеющего ContentType в качестве «Папки».