Фильтр Graph API работает на GraphExplorer, однако не работает на SDK

#microsoft-graph-api #azure-ad-graph-api

#microsoft-graph-api #azure-ad-graph-api

Вопрос:

Почему это работаетhttps://graph.microsoft.com/v1.0/me/onenote/notebooks ?filter=tolower(name) эквалайзер ‘мой ноутбук’

Скриншот из Graph Explorer

и когда я пытаюсь закодировать то же самое на C #, я получаю приведенный ниже код ошибки: Сообщение о неправильном запросе: Недопустимое предложение фильтра Внутренняя ошибка: additionalData: дата: 2020-09-02T20:01:24

Я использую приведенный ниже код.

var NoteBook = ожидает GraphClient.Me.Onenote.Ноутбуки.Запрос().Filter ($»name eq ‘Мой ноутбук'»).GetAsync();

Ответ №1:

Он не работает с https://graph.microsoft.com/v1.0/me/onenote/notebooks?filter=tolower(name) eq 'my notebook' . Ты пропустил $ раньше filter=xxx .

Правильный должен быть https://graph.microsoft.com/v1.0/me/onenote/notebooks?$filter=tolower(displayName) eq 'my notebook' .

Свойство не названо name . Вы можете получить результат, потому что фильтр не вступает в силу. Вы перечисляете все записные книжки. Правильный displayName .

Но в SDK нет атрибута, name определенного в классе notebook. Вот почему вы получаете ошибку при использовании SDK.

В SDK вы должны использовать этот код:

 var NoteBook = await graphClient.Me.Onenote.Notebooks.Request().Filter($"displayName eq 'My Notebook'").GetAsync();
  

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

1. @praveenkandari Если мой ответ полезен для вас, вы можете принять его в качестве ответа (нажмите на галочку рядом с ответом, чтобы переключить его с серого на заполненный.). Смотрите meta.stackexchange.com/questions/5234 /… . Это может быть полезно для других участников сообщества. Спасибо.