Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft graph api 替换操作中断OneNote表中的图像(图形API)_Microsoft Graph Api_Onenote_Onenote Api - Fatal编程技术网

Microsoft graph api 替换操作中断OneNote表中的图像(图形API)

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}",

我得在桌子里面做点什么。表中还包含图像

我需要将A标记为已完成。根据文档,我应该对整个表执行替换操作

首先,我调用GET/me/onenote/pages/{pageId}/content?includeId=true以查找表的正确id请在修补程序之前查看页面内容⇩.

然后我发送补丁/me/onenote/pages/{pageId}/正文内容:

[
  {
    "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中找到什么: