Microsoft graph api 替换操作中断OneNote表中的图像(图形API)
我得在桌子里面做点什么。表中还包含图像 我需要将A标记为已完成。根据文档,我应该对整个表执行替换操作 首先,我调用GET/me/onenote/pages/{pageId}/content?includeId=true以查找表的正确id请在修补程序之前查看页面内容⇩. 然后我发送补丁/me/onenote/pages/{pageId}/正文内容:Microsoft graph api 替换操作中断OneNote表中的图像(图形API),microsoft-graph-api,onenote,onenote-api,Microsoft Graph Api,Onenote,Onenote Api,我得在桌子里面做点什么。表中还包含图像 我需要将A标记为已完成。根据文档,我应该对整个表执行替换操作 首先,我调用GET/me/onenote/pages/{pageId}/content?includeId=true以查找表的正确id请在修补程序之前查看页面内容⇩. 然后我发送补丁/me/onenote/pages/{pageId}/正文内容: [ { "target": "table:{20c31cfe-9865-441d-9dbc-d8c53922d8f5}{21}",
[
{
"target": "table:{20c31cfe-9865-441d-9dbc-d8c53922d8f5}{21}",
"action": "replace",
"content": "<table border=\"1\"><tr><td><p data-tag=\"to-do:completed\">A</p></td><td><img src=\"https://graph.microsoft.com/v1.0/me/onenote/resources/1-66692d9b618447e9ad0d191137fcf91c!1-9857064f-8cbd-4b01-a41d-10e231bd6349/$value\"/></td></tr></table>"
}
]
API响应204,现在完成了一个测试。但形象已经被打破:
如何更新包含图像的表
补丁图API响应之前的页面内容
<html lang="en-US">
<head>
<title>Test 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="created" content="2018-10-08T12:03:00.0000000" />
</head>
<body data-absolute-enabled="true" style="font-family:Calibri;font-size:11pt">
<div id="div:{9f7149ca-3f9e-4275-8fa2-a51debcdb40c}{136}" style="position:absolute;left:48px;top:115px;width:624px">
<table id="table:{20c31cfe-9865-441d-9dbc-d8c53922d8f5}{21}" style="border:1px solid;border-collapse:collapse">
<tr id="tr:{20c31cfe-9865-441d-9dbc-d8c53922d8f5}{22}">
<td id="td:{20c31cfe-9865-441d-9dbc-d8c53922d8f5}{23}" style="border:1px solid">
<span lang="ru-RU" data-tag="to-do">A</span>
</td>
<td id="td:{20c31cfe-9865-441d-9dbc-d8c53922d8f5}{26}" style="border:1px solid">
<img id="img:{20c31cfe-9865-441d-9dbc-d8c53922d8f5}{54}" width="99" height="35" src="https://graph.microsoft.com/v1.0/users('0c2b9435-52c9-4480-a1d9-9faa92cecf51')/onenote/resources/1-66692d9b618447e9ad0d191137fcf91c!1-9857064f-8cbd-4b01-a41d-10e231bd6349/$value" data-src-type="image/png" data-fullres-src="https://graph.microsoft.com/v1.0/users('0c2b9435-52c9-4480-a1d9-9faa92cecf51')/onenote/resources/1-66692d9b618447e9ad0d191137fcf91c!1-9857064f-8cbd-4b01-a41d-10e231bd6349/$value" data-fullres-src-type="image/png" />
</td>
</tr>
</table>
</div>
</body>
根据OneNote团队的说法,在发送修补程序之前,您需要对图像进行一些转换 当您为页面执行GET时,图像会返回一个src属性,如:https://graph.microsoft.com/v1.0/users“0c2b9435-52c9-4480-a1d9-9faa92cecf51”/onenote/resources/1-66692d9b618447e9ad0d191137fcf91c!1-9857064f-8cbd-4b01-a41d-10e231bd6349/$value。该值实际上不是图像的直接链接,而是获取图像的图形请求URL。这是关键问题
您的应用程序必须获取该URL以检索图像内容,然后将返回的二进制图像编码到base 64中,然后将其添加到标记中。这应该可以解决问题。您是否尝试过将图像存储到OneDrive之类的Web存储中?@SeiyaSu我没有,因为用户可以在任何地方存储图像。我也可以复制图像。让我看看我能从OneNote中找到什么: