API для кастомной интеграции Setka Editor Интеграция со Style Manager

Интеграция со Style Manager

Содержание

Начальная синхронизация CMS –> Setka Editor

Информация об обновлениях Setka Editor –> CMS и создание сниппетов –> CMS snippets (Edit editor config url)

Update data (From Setka Editor to client CMS)

[неактуально для Setka Editor после 1.17.3 версии] Create snippet (From client CMS to Setka Editor API)

API Errors

Информация о подписке

Информация о клиенте

 

Прежде чем начать интеграцию убедитесь, что в вашем аккаунте в Style Manager (https://editor.setka.ioактивированы и заполнены все поля для кастомной интеграции во вкладке Integration:

Editor config url - по этой ссылке вы будете получать в своей CMS актуальную версию редактора и обновления стилей, созданные в Style Manager. Так же при первой синхронизации вы получите `public_token`, необходимый для работы ряда функций редактора, например комментариев и вставки эмбедов по ссылке.

Company status url - по этой ссылке вы будете получать информацию о подписке. Прошел/не прошел платеж, закончился пробный период и т.д. 

Server status url - по этой ссылке мы проверяем корректность проведенной интеграции.

 

Начальная синхронизация CMS  –> Setka Editor

Последняя версия документации по API находится по адресу https://editor.setka.io/docs/api2/index.html.

Пример интеграции на Ruby on Rails: https://github.com/setkaio/grid-editor-integration

Для правильной инициализации редактора ему необходимо передать набор параметров из JSON файла. Ссылка на JSON придет в ответе на запрос “начальной синхронизации”. JSON нужно распарсить и получившийся в результате ответ передать в функцию инициализации редактора на странице создания поста.

Основной домен: https://editor.setka.io

 

GET https://editor.setka.io/api/v1/custom/builds/current

{
"public_token": "123456789123456789123456789", "plugins": [ { "url": "https://ceditor.setka.io/public.js", "filetype": "js", "md5": "asdfasdfasdf" } ], "theme_files": [ { "id": 1, "url": "https://ceditor.setka.io/theme.min.css", "filetype": "css", "md5": "asdfasdfasdf" }, { "id": 1, "url": "https://ceditor.setka.io/theme.json", "filetype": "json", "md5": "asdfasdfasdf" } ], "content_editor_files": [ { "id": 1, "url": "https://ceditor.setka.io/editor.min.css", "filetype": "css", "md5": "asdfasdfasdf" }, { "id": 1, "url": "https://ceditor.setka.io/editor.min.js", "filetype": "js", "md5": "asdfasdfasdf" } ] }

 

Информация об обновлениях Setka Editor –> CMS и создание сниппетов –> CMS snippets (Edit editor config url)

Существует 2 варианта хранения и обработки ресурсов, получаемых от Setka Editor:

  • Полученные ссылки на ресурсы хранить в базе и динамически подключать на страницы редактирования и просмотра поста. После запроса на обновление менять ссылки на новые.
  • Скачать файлы по ссылкам и положить в публичную директорию проекта. Статически прописать путь до файлов на нужных страницах. После запроса на обновление скачать новые версии и заменить старые файлы.

CSS файл темы нужно подключать в 2х местах: 1. страница создания/редактирования поста и 2. страница отображения поста

JS файл плагинов нужно подключать в 2х местах: 1. страница создания/редактирования поста  и 2. страница отображения поста

JSON файл темы, JS и CSS файлы редактора нужно подключать в 1 месте – страница создания/редактирования поста

Public.js — в файле JSON, полученном из Style Manager, есть параметр `config.public_js_url`. Это ссылка на JS-файл `public.js`, который нужно подключать на внешние страницы сайта, для того чтобы на них работала анимация и галереи.  Ссылка на JS-файл `public.js` будет меняться при каждом обновлении JSON, поэтому при каждом пуше со стороны Style Manager необходимо обновлять у себя эту ссылку.

 

Update data (From Setka Editor to client CMS)

POST /<your_custom_url> 

{
  "token": "123456",
  "data": {
    "plugins": [
      {
        "url": "https://ceditor.setka.io/public.js",
        "filetype": "js",
        "md5": "asdfasdfasdf"
      }
    ],
    "theme_files": [
      {
        "id": 1,
        "url": "https://ceditor.setka.io/theme.min.css",
        "filetype": "css",
      },
      {
        "id": 1,
        "url": "https://ceditor.setka.io/theme.json",
        "filetype": "json",
        "md5": "asdfasdfasdf"
      }
    ],
    "content_editor_files": [
      {
        "id": 1,
        "url": "https://ceditor.setka.io/editor.min.css",
        "filetype": "css”,
        "md5": "asdfasdfasdf"
      },
      {
        "id": 1,
        "url": "https://ceditor.setka.io/editor.min.js",
        "filetype": "js",
        "md5": "asdfasdfasdf"
      }
    ]
  }
}

[неактуально для Setka Editor после 1.17.3 версии] Create snippet (From client CMS to Setka Editor API) 

POST /api/v1/custom/snippets 

{
  "token": "123456",
  "theme_id": 1,
  "snippet": {
    "name": "Snippet name",
    "code": "<html>snippet markup</html>"
  }
}

API Errors

HTTP/1.1 401 Unauthorized

{
  "error": "Not authorized!"
}

HTTP/1.1 403 Forbidden (CompanyPaymentError)

{
  "error": "There is a problem with payment. Please, check your payment settings and/or contact us!"
}

HTTP/1.1 403 Forbidden (CompanyExpiredError)

{
  "error": "Your company must be activated!"
}

HTTP/1.1 422 UnprocessableEntity

{
  "errors": {
    "code": ["can't be blank"],
    "name": ["can't be blank"]
  }
}

Необходимо отдавать 200 на наши запросы по следующим ссылкам:

 

Информация о подписке

POST /<Company status url>

Content-Type: application/json
  {
    token: ,
    data: {
      company_status: ,
      payment_status: ,
      active_until: 
    }
  }

Информация о клиенте

POST <Server status url>

Content-Type: application/json
  {
    token: <company_token>
  }

Response:

Code: 200

{
status: "The token is valid.",
  content_editor_version: "<editor_version_that_is_currently_installed_in_your_system>"
}

// content_editor_version = какая версия сейчас стоит у клиента.

Во всех вышеуказанных методах передаются ссылки на несжатые ресурсы. CDN раздает также и сжатые версии. Получить их можно двумя способами:

  • Добавить к ссылке .gz расширение, например: https://ceditor.setka.io/editor.min.js.gz
  • Обратиться за ресурсами с указанием специального заголовка Accept-Encoding. Пример: curl -H “Accept-Encoding: gzip” https://ceditor.setka.io/editor.min.js

Что бы узнать об инициализации Editor.js, пройдите по ссылке.

 

Кастомная интеграция: