我正在尝试创建一个简单的OneNote页面,在段落之间使用换行符。当我读到ON Graph API时,结构如下:
<p style="margin-top:0pt;margin-bottom:0pt">
First para
</p>
<br />
<p style="margin-top:0pt;margin-bottom:0pt">
Second para
</p>
但是,当我将这个确切的结构写回Graph时,它会包装<br />
标记,导致出现两个换行符而不是一个。
<p><br /></p>
如何让MS Graph相信我只想要一个独立的、非包装的<br />
标记,就像我在应用程序中打字时OneNote添加它一样?
我已经尝试了尽可能多的方法来做到这一点(添加多个<br />
标记;设置<br />
标记的样式;更改内容类型(,但没有成功。
我目前的方法是在前一段中添加<br />
标记,这是一个不错的方法——缺点是,当我稍后在OneNote中处理文本时,结果可能是不可预测的。例如,在空行上键入然后添加复选框会将其添加到前一段,因为换行符被视为最后一段的一部分:
<p>
First para
<br />
</p>
<p>
Second para
</p>
我认为这必须作为HTML提交,因为Graph默认是添加行距,原因很奇怪,因为这与在应用程序中添加页面时的ON默认行为不匹配。因此,所有
标签都需要指定边距,以便格式化与应用内编辑一致。
如果我理解这个问题,那就是如何使用post或patch命令复制页面。我使用的解决方案是创建一个模板页面,然后使用GET https://graph.microsoft.com/v1.0/me/onenote/pages/{id}/content?includeIDs=true[&includeInkML=true]
获取其结构。这将检索具有唯一段落ID的页面结构,然后可以使用创建或更新API来复制正确的页面结构PATCH https://graph.microsoft.com/v1.0/me/onenote/pages/{id}/content
[
{
"target": "p:{15cc58cb-da48-430d-0fa8-e30f08437d2a}{28}",
"action": "replace",
"content": "<p style="margin-top:0pt;margin-bottom:0pt"><span style="">First para
</span></p>"
}
]