使用 Onenote Rest 删除页面内容 API

Delete page's content with Onenote Rest API

我还没有找到使用 onennote 从页面内容中删除项目的方法 API。

假设我的页面内容是

<body>
    <div id="div:{681ddef6-e8ad-0de3-2439-dcc668303696}{34}">
        <p id="p:{f5837c83-d816-4337-ab6d-a52abde869a6}{13}">Delete me</p>
        <p id="p:{1710a020-7fa3-46cb-a8ab-64209696e083}{14}">Keep me/p>
    </div>
</body>

我可以构建一个 PATCH 请求来插入、追加、预添加……但这些都不是删除内容的说明。

我试图用一些空内容替换段落:

[{
  'target': 'p:{f5837c83-d816-4337-ab6d-a52abde869a6}{13}',
  'action': 'replace',
  'content': ' '
},
]

但这会导致错误:

{
  "error":{
    "code":"20121","message":"The PATCH argument $content:  is invalid.","@api.url":"http://aka.ms/onenote-errors#C20121"
  }
}

有什么建议吗?谢谢。

PATCH API 类型替换操作的内容参数预计有效 HTML。将空格指定为替换内容无效。

例如,您可以尝试替换比单个段落更高级别的元素来实现您的场景。

刚在microsoft graph中看这个,可以用HTML换行符替换内容。

[{
      'target': 'p:{f5837c83-d816-4337-ab6d-a52abde869a6}{13}',
      'action': 'replace',
      'content': '<code><br/>'
    }]

这个好像是删除对应的元素(虽然空白文本框仍然可选)

虽然 API 不支持 PATCH 页面中的 "DELETE" 操作(我鼓励您在我们的 uservoice 网页 https://onenote.uservoice.com/forums/245490-onenote-developer-apis 中添加一个条目),但您可以替换整个页面包含您想要的任何新内容。

另一个选项与 Manoj 建议的类似 - 用相同的内容替换要删除的元素的父元素减去要删除的元素。