Я пытаюсь получить список DocumentSetVersions для определенного элемента списка на сайте SharePoint с помощью Microsoft Graph SDK, следуя официальной документации Microsoft здесь. Однако при попытке выполнить вызов API возникает ошибка.
Список SharePoint — это библиотека документов по умолчанию с включенным контролем версий.
Я уже реализовал другие вызовы API с теми же GraphClient, siteId и ListId, и все работало отлично. Я уверен, что listItemId правильный.
Это код:
var result = await _graphClient.Sites[siteId].Lists[listId].Items[itemId].DocumentSetVersions.GetAsync();
Возвращенная ошибка:
ODataError: один из предоставленных аргументов неприемлем.
@Rukmini Eliah хочет перечислить версии набора документов, вызов версий не имеет смысла. Версия элемента списка отличается от версии набора документов
@user2250152 user2250152 Спасибо за указание, требование получено.
Не могли бы вы использовать _graphClient.Sites[siteId].Lists[listId].Items[itemId].DocumentSetVersions.ToGetRequestInformation(); и поделиться URL-адресом, созданным для запроса?
Это URI запроса graph.microsoft.com/v1.0/sites/…
Помогает ли это
Это не работает, я не могу найти ключ с именем _checkInComment, хотя в моем CheckIn он наверняка есть. В любом случае спасибо за вашу помощь!
Попробуйте try { var versions = await graphClient.Sites[siteId].Lists[listId].Items[listItemId].Versions .GetAsync((requestConfiguration) => { requestConfiguration.QueryParameters.Select = new string[] { "fields" }; }); foreach (var version in versions.Value) { Console.WriteLine($"Version ID: {version.Id}"); Console.WriteLine($"Fields JSON: {JsonConvert.SerializeObject(version.Fields)}"); } }
Да, это работает! Версия.Fields содержит _CheckinComment. Спасибо.





Вы можете прочитать documentSetVersions только для элементов списка, представляющих папку. Если элемент списка представляет файл, API Graph вернет ошибку.
ODataError: один из предоставленных аргументов неприемлем.
Попробуйте прочитать первый элемент списка и проверьте свойство contentType.
var item = await _graphClient.Sites[siteId].Lists[listId].Items[itemId]
// check content type
item.ContentType.Name
Извините, я неправильно понял функциональность DocumentSetVersions. Мне нужна история версий документа. В этом случае «.Versions» является правильным и работает корректно. Однако было бы неплохо, если бы я мог по-прежнему получать CheckInComment для каждой версии, пока я не нашел никакой информации об этом в документации MS.
@EliahThommen Спасибо за разъяснения. Попробуйте создать новый вопрос о проверке в комментариях.
Спасибо! В документе MS есть элемент под названием «комментарий», который содержит комментарий к изменениям версии, но я не могу найти его в объекте ответа. Как мне это получить?