У меня внутри стол.Также таблица содержит изображение. Скриншот страницы
Мне нужно пометить букву «А» как завершенную.Согласно документации, я должен выполнить действие замены для всей таблицы.
Сначала я вызываю GET /me/onenote/pages/{pageId}/content?includeIDs=true, чтобы найти правильный идентификатор таблицы (см. «Содержимое страницы до PATCH» *).
GET /me/onenote/pages/{pageId}/content?includeIDs=true
ЗатемЯ отправляю PATCH /me/onenote/pages/{pageId}/content с телом:
PATCH /me/onenote/pages/{pageId}/content
[ { "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, и "A" завершено.Но изображение было повреждено: обновленная страница
Как обновить таблицу, содержащую изображения?
Содержимое страницы перед PATCH(Ответ 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, перед отправкой PATCH вам необходимо выполнить некоторые преобразования изображений.
Когда вы выполняете 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-адресом запроса Graph для получения изображения.Это ключевая проблема.
src
https://graph.microsoft.com/v1.0/users('0c2b9435-52c9-4480-a1d9-9faa92cecf51')/onenote/resources/1-66692d9b618447e9ad0d191137fcf91c!1-9857064f-8cbd-4b01-a41d-10e231bd6349/$value
Ваше приложение должно выполнить GET по этому URL, чтобы извлечь содержимое изображения, затем закодировать двоичное изображение, возвращенное в base 64, и добавить его в тег <img>.Это должно обойти проблему.
<img>