Как найти объект OneNote Notebook от DriveItem с MS Graph? - PullRequest
1 голос
/ 09 апреля 2019

Когда OneNote Notebook создается в OneDrive, Microsoft отображает DriveItem с фасетом пакета и type из oneNote. Это точно по документации. driveItem представляется ссылкой / ссылкой на фактическую записную книжку, которая хранится в «скрытой» папке.

Существуют также API-интерфейсы Graph для получения списка всех записных книжек OneNote пользователя, и вы можете получить определенную записную книжку по ее id. id ноутбука, однако, не то же самое, что driveItem.

Учитывая driveItem с аспектом пакета OneNote, как мне получить id фактического ноутбука, чтобы я мог получить его и его детали?

Я довольно тщательно исследовал использование Graph Explorer, но безуспешно. Я не могу поверить, что это будет правдой, но обязательно ли имена ноутбуков уникальны? Это единственное свойство, которое я вижу (кроме прав владельца / пользователя), которое сопоставляет два объекта.

1 Ответ

2 голосов
/ 10 апреля 2019

Ноутбук id не обнаружен через ресурс DriveItem.Они возвращаются API, поэтому они точно отражают те же файлы, которые возвращены пользовательским интерфейсом OneDrive, но с ними нельзя взаимодействовать напрямую.Для работы с ноутбуками вам необходимо использовать Notes API .

Документация OneDrive немного более прямолинейна в этой теме:

Работа с записными книжками OneNote

Примечание . Хотя OneDrive хранит записные книжки OneNote, вы не должны использовать API OneDrive для работы с записными книжками OneNote.

Этот набор документов также включает в себя более полное описание Тип ресурса пакета .

В настоящее время не существует простого способа раскрытия ноутбука.id из-за этого DriveItem.Есть один прием, который вы можете использовать, но честное предупреждение, это , а не документированный метод.

  1. Используя Graph Explorer (без входа в систему), выполните следующий вызов:

    https://graph.microsoft.com/v1.0/me/drive/items/01BYE5RZ35EU76DRTYZ5DK5DATNBSRPLC7
    
  2. Посмотрите на eTag в результате:

    "eTag": "\"{E13F257D-78C6-46CF-AE8C-13686517AC5F},1\""
    
  3. Теперь взгляните на список Блокнотов, используя:

    https://graph.microsoft.com/v1.0/me/onenote/notebooks
    
  4. Первый возвращенный Блокнот имеет следующий идентификатор:

    "id": "1-e13f257d-78c6-46cf-ae8c-13686517ac5f",
    
  5. Если вы посмотрите на эти бок о бок, вы увидите, что ноутбук id содержит те же данные, что и eTag, хотя и немногодругой порядок ({digit}-{guid}):

    "eTag": "\"{E13F257D-78C6-46CF-AE8C-13686517AC5F},1\""
    "id": "1-e13f257d-78c6-46cf-ae8c-13686517ac5f",
    

Я сам использовал это, но я был бы осторожен и убедился, что ваш код использовал больше, чем просто eTag (я посмотрелв свойствах eTag, owner и name).Он не «поддерживается», поэтому возможно, что это может измениться, поэтому сравнение нескольких свойств может предотвратить случайное отклонение.

О, и никому не говори.Это только между нами.;)

...