Размещенный смарт-редактор

Cамый простой способ интегрировать смарт-редактор Clipping Magic в ваш собственный рабочий процесс.

Порядок интеграции

Прежде всего обязательно прочитайте Быстрый старт.

  1. Загрузите изображение, используя API сервера.

  2. Создайте Размещенный смарт-редактор и укажите его своему оператору, чтобы он вырезал определенные вами изображения.

  3. После обрезки всех изображений браузер вашего оператора переходит к указанному Обратный URL-адрес с помощью HTTP-запроса POST, содержащего соответствующую информацию о сеансе вырезания.

Если вам нужно решение "white label" или обратный вызов для каждого вырезанного изображения, пожалуйста, смотрите смарт-редактор White Label.

Размещенный смарт-редактор https://clippingmagic.com/api/v1/hosted/[apiId]

Вы можете создать простой URL-адрес и попросить оператора открыть его в своем браузере, чтобы он просмотрел и отредактировал одно или несколько ваших изображений.

Размещенный смарт-редактор поддерживает следующие параметры:

images
id1:secret1,id2:secret2,...
123:abc,456:def
Обязательно

Изображения для обрезки. Список пар id:secret, разделенных запятыми. Их можно получить, загрузив изображение с помощью API сервера.

returnUrl
Строка
Обязательно

Когда ваш оператор закончит обрезку, его браузер отправит HTTP POST на этот URL-адрес. Смотрите подробную информацию ниже.

useStickySettings
Логический
true, false

Если вы передадите useStickySettings=true, редактор будет использовать липкие настройки, которые в настоящее время настроены для пользователя, чей ключ API был использован для загрузки изображения.

Это позволяет вам один раз настроить базовые параметры обрезки, а затем применять их ко всем редактируемым изображениям.

Read about how to configure the sticky settings

Предварительная обрезка недоступна в API, но вы можете настроить ограничение размера изображения в вызове загрузки API.

По умолчанию: false

hideBottomToolbar
Логический
true, false

Скрывает нижнюю панель инструментов, что делает эти настройки недоступными в редакторе.

По умолчанию: false

locale
Строка

Язык отображения для редактора. В случае пропуска по умолчанию используется английский. Допустимые значения:

КодЯзык отображения
en-US English (английский)
de-DE Deutsch (немецкий)
es-ES Español (испанский)
fr-FR Français (французский)
hi-IN हिन्दी (хинди)
id-ID Indonesia (индонезийский)
it-IT Italiano (итальянский)
ja-JP 日本語 (японский)
ko-KR 한국어 (корейский)
pl-PL Polski (польский)
pt-BR Português (португальский)
ru-RU Русский (русский)
th-TH ไทย (тайский)
tr-TR Türkçe (турецкий)
vi-VN Tiếng Việt (вьетнамский)
zh-Hans-CN 简体中文 (китайский)
zh-Hant-TW 繁體中文 (китайский)

Современные браузеры допускают использование очень длинных URL-адресов, но если вам приходится пользоваться устаревшим браузером и вырезать более 30 изображений за один сеанс, то вы можете отправить их в запросе POST вместо того, чтобы пользоваться прямой ссылкой.

Пример URL-адреса единичного изображения



https://clippingmagic.com/api/v1/hosted/123?images=2346:image_secret1&returnUrl=https%3A%2F%2Fclippingmagic.com%2Fapi%2FreturnUrlExample

При выборе единичного изображения редактор не имеет кнопки «пропустить» и не показывает количество оставшихся изображений для обрезки.

Пример URL-адреса нескольких изображений



https://clippingmagic.com/api/v1/hosted/123?images=2346:image_secret1,2347:image_secret2&returnUrl=https%3A%2F%2Fclippingmagic.com%2Fapi%2FreturnUrlExample

При выборе нескольких изображений редактор имеет кнопку «пропустить» и показывает количество оставшихся изображений для обрезки.

Обратный URL-адрес

Когда ваш оператор закончит обрезку, его браузер отправит HTTP POST на указанный вами Обратный URL-адрес. Этот POST будет содержать в тексте только один параметр: clippingMagicJson. Когда вы проверите содержимое этого параметра, он распакуется в объект JSON с информацией о том, какие изображения были вырезаны. После этого вы сможете скачать имеющиеся результаты с помощью API сервера скачивания.

event
Перечисление
editor-exit, error

editor-exit означает, что сеанс обрезки завершился успешно.

error означает, что произошла ошибка и что приведенный ниже error заполнен.

images
[{"id":1,"secret":"secret1"},{"id":2,"secret":"secret2"},{"id":3,"secret":"secret3"},{"id":4,"secret":"secret4"}]
Массив с изображениями, предоставленными в URL-адресе размещенного смарт-редактора.
clipped
[{"id":1,"secret":"secret1"},{"id":2,"secret":"secret2"}]
Массив с изображениями, фактически обрезанными в этом сеансе, то есть изображениями, для которых оператор нажал кнопку «Готово».
skipped
[{"id":3,"secret":"secret3"},{"id":4,"secret":"secret4"}]
Массив с изображениями, пропущенными в этом сеансе, то есть изображениями, для которых оператор нажал кнопку в редакторе «Пропустить».

Если event=error, будет присутствовать объект члена error, заполненный:

error.status
Целое число
Код статуса HTTP 4xx означает ошибку вызывающего. 5xx означает ошибку внутреннего сервера.
error.code
Целое число
Номер, который однозначно идентифицирует произошедшую ошибку.
error.message
Строка
Сообщение об ошибке в понятном для человека формате, которое описывает произошедшую ошибку.

Вам нужно будет либо отключить все проверки CSRF, либо добавить токен CSRF в Обратный URL-адрес для успешного выполнения POST.

Если ваш оператор закроет свой браузер или если вы используете неразборчивый URL-адрес размещенного смарт-редактора, ваш обратный URL-адрес вызываться не будет.

Пример успешного выполнения clippingMagicJson декодируется следующим образом:
{
  "event" : "editor-exit",
  "images" : [ {
    "id" : 2346,
    "secret" : "image_secret1"
  }, {
    "id" : 2347,
    "secret" : "image_secret2"
  } ],
  "clipped" : [ {
    "id" : 2346,
    "secret" : "image_secret1"
  }, {
    "id" : 2347,
    "secret" : "image_secret2"
  } ],
  "skipped" : [ ]
}
Проверьте свой обратный URL-адрес
Пример ошибки clippingMagicJson декодируется следующим образом:
{
  "event" : "error",
  "error" : {
    "status" : 400,
    "code" : 1234,
    "message" : "Example error"
  },
  "images" : [ {
    "id" : 2346,
    "secret" : "image_secret1"
  }, {
    "id" : 2347,
    "secret" : "image_secret2"
  } ],
  "clipped" : [ ],
  "skipped" : [ {
    "id" : 2346,
    "secret" : "image_secret1"
  }, {
    "id" : 2347,
    "secret" : "image_secret2"
  } ]
}
Проверьте свой обратный URL-адрес