«ODataError: один из предоставленных аргументов неприемлем» при попытке составить список DocumentSetVersions с помощью Microsoft Graph SDK

Я пытаюсь получить список 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: один из предоставленных аргументов неприемлем.

Спасибо! В документе MS есть элемент под названием «комментарий», который содержит комментарий к изменениям версии, но я не могу найти его в объекте ответа. Как мне это получить?

Eliah Thommen 05.06.2024 14:44

@Rukmini Eliah хочет перечислить версии набора документов, вызов версий не имеет смысла. Версия элемента списка отличается от версии набора документов

user2250152 05.06.2024 14:49

@user2250152 user2250152 Спасибо за указание, требование получено.

Rukmini 05.06.2024 14:51

Не могли бы вы использовать _graphClient.Sites[siteId].Lists[listId].Items[itemId].Docum‌​entSetVersions.ToGet‌​RequestInformation()‌​; и поделиться URL-адресом, созданным для запроса?

user2250152 05.06.2024 14:51

Это URI запроса graph.microsoft.com/v1.0/sites/…

Eliah Thommen 05.06.2024 14:56

Помогает ли это

Rukmini 05.06.2024 15:49

Это не работает, я не могу найти ключ с именем _checkInComment, хотя в моем CheckIn он наверняка есть. В любом случае спасибо за вашу помощь!

Eliah Thommen 05.06.2024 16:03

Попробуйте try { var versions = await graphClient.Sites[siteId].Lists[listId].Items[listItemId].Ve‌​rsions .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)}"); } }

Rukmini 05.06.2024 16:17

Да, это работает! Версия.Fields содержит _CheckinComment. Спасибо.

Eliah Thommen 05.06.2024 17:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете прочитать 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.

Eliah Thommen 05.06.2024 15:27

@EliahThommen Спасибо за разъяснения. Попробуйте создать новый вопрос о проверке в комментариях.

user2250152 05.06.2024 15:39

Другие вопросы по теме