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) リンクから抽出されたページ ID:A8CECE6F-6AD8-4680-9773-6C01E96C91D0

(2) 注意すべきプロパティとしての page-id:

0-5f49903893f048d0a3b1893ef004411f!1-240BD74C83900C17!124435

ご覧のとおり、大きく異なります。次の方法でページ コンテンツにアクセスします。

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

... for (1) は何も返さない

... for (2) は、完全なページ コンテンツを返します。

(両方のメソッドで返されるセクション ID もまったく異なります。)

では、機能するページ ID をリンクから抽出するにはどうすればよいでしょうか?

4

1 に答える 1

1

残念ながら、OneNote API は現在、ページ コンテンツ内の他の OneNote ページへのリンクの識別をサポートしていません。OneNote のリンクは、Web サイト、他の 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": "Created from 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%20セクション。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 14-29056CF89BB2D216!162", "自分" : " 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" ", "name": "ハリーのセクション", "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 に答える