Если вы пытаетесь получить все имена страниц для записной книжки, существует обходной путь с использованием вложенного фильтра OData. Идея состоит в том, чтобы запросить все страницы, $expand
parentNotebook
, а затем $filter
на id
parentNotebook
. Вот пример URL.
GET ~/pages?$expand=parentNotebook&$filter=parentNotebook/id%20eq%20'{$notebook_id_here}'
Вот еще один вопрос SO, где кто-то использует аналогичный шаблон: Лучший способ использовать One Note API для ПОЛУЧЕНИЯ определенных страниц в определенном разделе в конкретной записной книжке?
Обновление:
Вы можете управлять порядком возвращаемых страниц, используя OData $orderby
и указав свойства, которые существуют для сущностей в возвращаемом наборе сущностей (в данном случае сущностью являются страницы). Из dev.onenote.com: «[порядок] по умолчанию - lastModifiedTime desc
(сначала самая последняя измененная страница)».
В разделе https://dev.onenote.com/docs#/reference/get-pages есть раздел «Свойства страницы», в котором показаны все свойства, возвращаемые этим вызовом. Поскольку мы получаем все страницы, доступные пользователю, которые существуют в записной книжке, единственное свойство, которое мы можем использовать, к сожалению, createdTime
.
Добавляемый параметр запроса выглядит как $orderby=createdTime
В полном объеме:
GET ~/pages?$expand=parentNotebook&$filter=parentNotebook/id%20eq%20'{$notebook_id_here}&$orderby=createdTime
Я только что протестировал это с помощью Fiddler на своих собственных страницах, поэтому думаю, что это должно сработать. Приятно то, что это единичный запрос.
ПОЛУЧИТЬ https://www.onenote.com/api/v1.0/me/notes/pages?$expand=parentNotebook&$filter=parentNotebook/id%20eq%20'{$YOUR_NOTEBOOK_ID_HERE}'&$orderby=createdTime
person
Vishaal Kalwani
schedule
16.12.2016