0

如果我们在 HTML 内容中有指向另一个 OneNote 页面的链接:

<a href="onenote:SectionB.one#Note1&amp;section-id={<section-id>}&amp;page-id={<page-id>}&amp;end&amp;base-path=https://<path>"

...在我编写解析例程来提取该链接之前,我想我会问我是否忽略了 OneNote API 中的任何内容以使这更容易。

==================================================== ==========================

[编辑]好吧,我已经编写了我的例程来提取链接笔记的页面ID,但是该页面ID结果与作为链接笔记的属性(id)返回的页面ID完全不同本身 - 它不起作用:(

这是一个例子:

(1) 从链接中提取的page-id:A8CECE6F-6AD8-4680-9773-6C01E96C91D0

(2) page-id 作为注意属性:

0-5f49903893f048d0a3b1893ef004411f!1-240BD74C83900C17!124435

如您所见,完全不同。通过以下方式访问页面内容:

 ../pages/{page-id}/content

... for (1) 不返回任何内容

... for (2) 返回整页内容。

(两种方法返回的 section-ids 也完全不同。)

那么,如何从链接中提取有效的页面 ID?

4

1 回答 1

1

遗憾的是,OneNote API 当前不支持在页面内容中识别指向其他 OneNote 页面的链接。OneNote 中的链接可以是指向任何内容的链接:网站、其他 OneNote 页面/部分/笔记本、网络共享... API 确实支持通过使用获取到页面的链接

    GET ~/pages
    GET ~/sections/id/pages

页面元数据模型包含一个带有 clientUrl 和 webUrl 的链接对象。


问题更新后编辑:你是对的 - 链接中的 id 与 OneNote API 的 id 不对应。但是,您可以将链接中的 id 与 API 中公开的 OneNoteClientUrl 中的 id 进行比较。这是一个响应的示例

    GET ~/sections/id/pages
    GET ~/pages

{ "title": "从 WAC 创建", "createdByAppId": "", "links": { "oneNoteClientUrl": { "href": "onenote: https://d.docs.live.net/29056cf89bb2d216/Documents /TestingNotification/Harrie%27s%20Section.one#Created%20from%20WAC§ion-id=49b630fa-26cd-43fa-9c45-5c62d547ee3d&page-id=a60de930-0b03-4527-bf54-09f3b61d8838&end " }, "oneNoteWebUrl": { "href “:” https://onedrive.live.com/redir.aspx?cid=29056cf89bb2d216&page=edit&resid=29056CF89BB2D216!156&parId=29056CF89BB2D216!105&wd=target%28Harrie%27s%20Section。one%7C49b630fa-26cd-43fa-9c45-5c62d547ee3d%2FCreated%20from%20WAC%7Ca60de930-0b03-4527-bf54-09f3b61d8838%2F%29 "} }, "contentUrl": "https://www.onenote.com/api/v1.0/me/notes/pages/0-a50842a9873945379f3d891a7420aa39!14-29056CF89BB2D216!162/content ", "thumbnailUrl": " https://www.onenote.com/ api/v1.0/me/notes/pages/0-a50842a9873945379f3d891a7420aa39!14-29056CF89BB2D216!162/thumbnail ", "lastModifiedTime": "2016-03-28T21:36:22Z", "id": "0-a5439439891a3d981a3d981a3 14-29056CF89BB2D216!162", "self": " https://www.onenote.com/api/v1.0/me/notes/pages/0-a50842a9873945379f3d891a7420aa39!14-29056CF89BB2D216!162 ", "createdTime": " 2016-03-24T20:38:16Z”,“parentSection@odata.context”:“ https://www.onenote.com/api/v1.0/$metadata#me/notes/pages('0-a50842a9873945379f3d891a7420aa39%2114-29056CF89BB2D216%21162')/parentSection(id,name,self)/$entity", "parentSection": { "id": "0-29056CF89BB2D216!162 ", "名称": "Harrie's Section", "self": " https://www.onenote.com/api/v1.0/me/notes/sections/0-29056CF89BB2D216!162 " } }

您还可以使用以下方法过滤链接中的 id 的服务器端(如果您想避免分页和正则表达式;)):

    GET ~/pages?$filter=contains(links/oneNoteClientUrl/href,'a60de930-0b03-4527-bf54-09f3b61d8838')
于 2016-03-24T18:26:51.047 回答