Не удается получить разделы в общей записной книжке OneNote

Используя API OneNote (через PHP и cURL), я могу получить данные для общей записной книжки (здесь показаны не все данные):

"id": "1-ff693481-8376-40a5-936a-1d94aaf0acc5",
"self": "https://graph.microsoft.com/v1.0/users/1f1e0d22-2cab-43fa-944f-41ff04441b26/onenote/notebooks/1-ff693481-8376-40a5-936a-1d94aaf0acc5",
"displayName": "Config-003",
"sectionsUrl": "https://graph.microsoft.com/v1.0/users/1f1e0d22-2cab-43fa-944f-41ff04441b26/onenote/notebooks/1-ff693481-8376-40a5-936a-1d94aaf0acc5/sections",
...

Но когда я использую sectionsUrl для получения разделов в этой записной книжке (или использую id для создания собственного URL-адреса), я получаю только сообщение об ошибке 404:

curl_exec() failed: The requested URL returned error: 404 Not Found

Так как же сделать так, чтобы разделы (а затем и страницы внутри них) работали?

Примечание. Ответы на Доступ к страницам и разделам общих блокнотов для аккаунта Onenote для бизнеса не отвечайте на мой вопрос.

[EDIT] Просто чтобы уточнить в свете ответа Мартина Цейтлера (теперь удаленного): токен доступа предоставляется с запросом разделов, как и для предыдущего запроса ноутбуков:

CURLOPT_HTTPHEADER => array("Content-Type: text/html", "Authorization: Bearer " . $encodedAccessToken)


person Velojet    schedule 22.03.2019    source источник


Ответы (1)


Используйте GET-RecentNotebooks API https://docs.microsoft.com/en-us/graph/api/notebook-getrecentnotebooks?view=graph-rest-1.0 для получения общих блокнотов. Затем для любой общей записной книжки используйте API POST-GetNotebookFromWebUrl https://docs.microsoft.com/en-us/graph/api/notebook-getnotebookfromweburl?view=graph-rest-1.0, чтобы получить правильные URL-адреса разделов.

person Manjusha    schedule 17.04.2019
comment
Большое спасибо, Манюша. Мне нужно немного кодировать/перекодировать! Я попробую и отчитаюсь. - person Velojet; 24.04.2019
comment
URL-адрес разделов, который я получаю в этом двухэтапном процессе GET/POST, дает мне ошибку 400. Когда я обращаюсь к URL-адресу в Graph Explorer, он также завершается с кодом состояния 400 и дает мне более подробную информацию: "The OData query is invalid. The URI segment 'notebooks('1-8be13c7f-8846-4c74-955c-296eac376f9d')' is invalid after the segment 'notes'." Полный URL-адрес: https://graph.microsoft.com/v1.0/sites/,676ba1b3-31c4-413b-b540-1561975a81f7,96002105-698a-4329-9524-4cd89c66a218/onenote/notebooks/1-8be13c7f-8846-4c74-955c-296eac376f9d/sections - person Velojet; 25.04.2019
comment
После дополнительных исследований я обнаружил, что в возвращаемом URL-адресе разделов отсутствует жизненно важный элемент: URL-адрес самого сайта SharePoint (первый сегмент после https:// в возвращенном oneNoteWebUrl). Это необходимо вставить перед первой запятой в сегменте после /sites/. Как только это будет сделано, полный URL-адрес будет правильно сформирован, больше не будет выдавать ошибку 400 и будет возвращать действительный ответ, из которого можно извлечь данные разделов. - person Velojet; 26.04.2019
comment
Это действительно кажется дефектом в ответе на запрос API GetNotebookFromWebUrl, поскольку pagesUrl в ресурсе раздела действительно содержит сегмент, отсутствующий в ответе sectionsUrl на запрос GetNotebookFromWebUrl. - person Velojet; 27.04.2019
comment
+1 за ответ Манджуши, потому что, хотя он не дал мне полной истории (см. Мои предыдущие комментарии), по крайней мере, он указал мне правильное направление. - person Velojet; 01.07.2019