Операция замены разрывов изображений в таблице OneNote (Graph API) - PullRequest
0 голосов
/ 10 октября 2018

У меня внутри стол.Также таблица содержит изображение. Скриншот страницы

Мне нужно пометить букву «А» как завершенную.Согласно документации, я должен выполнить действие замены для всей таблицы.

Сначала я вызываю GET /me/onenote/pages/{pageId}/content?includeIDs=true, чтобы найти правильный идентификатор таблицы (см. «Содержимое страницы до PATCH» *).

ЗатемЯ отправляю 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>

1 Ответ

0 голосов
/ 31 октября 2018

Согласно команде 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 для получения изображения.Это ключевая проблема.

Ваше приложение должно выполнить GET по этому URL, чтобы извлечь содержимое изображения, затем закодировать двоичное изображение, возвращенное в base 64, и добавить его в тег <img>.Это должно обойти проблему.

...