【问题标题】:Can't get sections in OneNote shared notebook无法在 OneNote 共享笔记本中获取分区
【发布时间】:2019-04-17 17:07:31
【问题描述】:

使用 OneNote API(通过 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 获取该笔记本中的 sections (或使用 id 构建我自己的 URL)时,我得到的只是 404 错误消息:

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

那么有什么方法可以让部分(然后是其中的页面)起作用?

注意:Accessing shared notebooks pages and sections for Onenote for business acoount 的答案不回答我的问题。

[编辑] 根据 Martin Zeitler 的回答(现已删除)进行澄清:访问令牌与部分请求一起提供,就像前面的笔记本请求一样:

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

【问题讨论】:

    标签: php onenote-api


    【解决方案1】:

    请使用 GET-RecentNotebooks API https://docs.microsoft.com/en-us/graph/api/notebook-getrecentnotebooks?view=graph-rest-1.0 检索共享笔记本。然后对于任何共享笔记本,使用 POST-GetNotebookFromWebUrl API https://docs.microsoft.com/en-us/graph/api/notebook-getnotebookfromweburl?view=graph-rest-1.0 获取正确的部分 url

    【讨论】:

    • 非常感谢,文殊。我有一些编码/重新编码要做!我会尝试并报告。
    • 我在该两步 GET/POST 过程中获得的部分 URL 给了我 400 错误。当我在 Graph Explorer 中访问 URL 时,它也会失败并显示状态代码 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
    • 经过更多探索,我发现返回的部分 URL 缺少一个重要元素:SharePoint 网站本身的 URL(返回的 oneNoteWebUrlhttps:// 之后的第一段)。这需要在/sites/ 之后的段中的第一个逗号之前插入。完成后,完整的 URL 格式正确,不再给出 400 错误,并返回可以从中提取部分数据的有效响应。
    • 这似乎确实是GetNotebookFromWebUrl API 请求响应中的一个缺陷,因为部分资源中的pagesUrl 确实包含sectionsUrl 对@ 的响应中缺少的段987654331@请求。
    • +1 为 Manjusha 的回答,因为即使它没有给我完整的故事(请参阅我以前的 cmets),至少它确实为我指明了正确的方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多