API для интеграции Setka Editor Получение постов из личного кабинета с помощью Setka Cloud API

Получение постов из личного кабинета с помощью Setka Cloud API

Setka Cloud API позволяет выгружать HTML-код и вспомогательные данные постов, сохранённых в личном кабинете.

 

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

 

Содержание

Работа с постами при включённом Cloud API

Публикация поста

Обновление поста

Запросы к API

Авторизация

В заголовке запроса

В параметрах запроса

Пример ответа на запрос

Описание полученного набора файлов

Элементы массива posts

Файлы массива assets

Элементы массива pagination

Обращение к API с дополнительными параметрами

Фильтры

Дополнительные поля

Выбор данных поста

Ошибки API

 

Работа с постами при включённом Cloud API

Если в аккаунте активен Cloud API, в интерфейсе появятся новые кнопки, с помощью которых вы сможете управлять отправкой постов в API.

 

Публикация поста

При активном Cloud API на бейдже поста появится кнопка Publish / Unpublish. С её помощью определяется статус поста — published (опубликован) или draft (черновик):

Screenshot-Setka-Account-Interface-Publish-Post.png


Аналогичная кнопка появится в интерфейсе редактора:

Screenshot-Setka-Editor-Publish-Post.png


Обновление поста

После публикации, пост может быть обновлён. До процедуры обновления, пост, сохраный в Setka Cloud, будет сохранять статус draft (серновик). Чтобы обновить пост и, тем самым,перевести новую ревизию в статус published (опубликована):

 

Внесите любые изменения. Сохраните изменения нажатием кнопки Save draft.

После этого нажмите Republish на странице редактирования поста:

Screenshot-Setka-Editor-Update-Post.png

 

Запросы к API

Для получения полного списка постов, выполните  следующий запрос, добавив лицензионный ключ:

GET https://editor.setka.io/api/v2/posts

 

Чтобы получить конкретный пост из личного кабинета, укажите его идентификатор:

GET https://editor.setka.io/api/v2/posts/POST_ID

Где POST_ID — идентификатор поста.

Важно: по умолчанию, API выдаст только посты в статусе published, без изображений и данных HubSpot. Чтобы получить черновики постов, используйте фильтры state:draft или state:all. Для включения в ответ данных HubSpot и/или изображений, добавьте в запрос дополнительные поля.

 

Авторизация

Авторизация возможна двумя способами:

 

В заголовке запроса

Добавьте в запрос заголовок авторизации:

{
"Authorization": "Bearer YOUR_LICENSE_KEY"
}

Где YOUR_LICENSE_KEY — ваш лицензионный ключ.

 

В параметрах запроса

Добавьте в запрос параметр token:

GET https://editor.setka.io/api/v2/posts?token=YOUR_LICENSE_KEY

Где YOUR_LICENSE_KEY — ваш лицензионный ключ.

 

Пример ответа на запрос

Если запрос успешен, в ответе вы получите массив постов. При большом количестве постов, ответ разобьётся на страницы. Добавится объект pagination.

HTTP/1.1 200 OK
{
  posts: [
    {
      "id": 2587,
      "title": "Stylist",
      "style_name": "General",
      "layout_name": "6col_19774",
      "reading_time": 240,
      "preview_link": "https://editor.setka.io/posts/80a44hd5924792",
      "state": "published"
      "author": {
        "id": 44,
        "name": "Sergey Ivanov"
      },
      "body_html": "<div data-ui-id=\"post\">Hello!</div>",
      "assets": {
        "plugins": [
          "https://ceditor.setka.io/clients/js_plugins/5ca41dc7f0df3e3d6170901b627d32fc/public.js"
        ],
        "styles": [
          "https://ceditor.setka.io/common_css/common_css_1565603693.css",
          "https://ceditor.setka.io/clients/GP1TwUnF9mFFVzgqnAplHSQs51xdl4WT/css/loM7yyO-6xsVawmBxqej8A.css",
          "https://ceditor.setka.io/clients/GP1TwUnF9mFFVzgqnAplHSQs51xdl4WT/layout_option_builds/19774/gazQpY7j6Cgq9gFsEKYF5A.css"
        ],
        "images": [
          {
            "id": 3310,
            "url": "https://ceditor.setka.io/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg",
            "alt": "Alt text"
            "sizes": [
              {
                "width": 3654,
                "height": 5473,
                "url": "https://ceditor.setka.io/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
              },
              {
                "width": 500,
                "height": 5473,
                "url": "https://ceditor.setka.io/6xAHRUiLM1NBnWZ9JupZNdugX1UyoQkg9kzIGk9--vk/w:500/q:88/plain/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
              },
              {
                "width": 1000,
                "height": 5473,
                "url": "https://ceditor.setka.io/Ioa24dDnWZ9JupZNdugX1UyoQkg9kzIGk9--vk/w:1000/q:88/plain/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
              }
            ]
          }
        ]
      },
      "hubspot_post": {
        "id": 141,
        "url": "https://hubspotblog.com/1-blog-page/-temporary-slug-bbd6cb8e-afed-4291-8937-c779c9ac2d25?hs_preview=ludkAblF-28956926215",
        "blog_id": 1315
      },
      "created_at": "2019-07-19T10:25:27Z",
      "updated_at": "2019-07-19T10:27:40Z",
      "published_at": "2019-07-22T13:34:11Z"
    }
  ],
  pagination: {
    "page": 1,
    "limit": 20,
    "page_count": 1,
    "total_count": 1
  }
}

 

Описание полученного набора полей

Поле Описание

posts

Массив постов. Содержит все посты из личного кабинета. Выборку можно ограничить с помощью дополнительных параметров.

pagination

Пагинация выдачи. Содержит информацию о текущей странице, количестве страниц, общем количестве постов и количестве постов на одной странице.

 

Элементы массива posts

Элемент Описание

id

Уникальный идентификатор поста.

title

Название поста.

style_name

Название стиля, используемого в посте.

layout_name

Название системы сеток, в которой свёрстан пост.

reading_time

Примерное время чтения поста в секундах.

preview_link

Ссылка на превью поста в личном кабинете.

state

Состояние поста, где:

— draft — черновик.

— published — опубликован.

created_at

Дата и время создания поста.

updated_at

Дата и время последнего обновления поста.

published_at

Дата публикации поста.

author

Данные об авторе поста, где:

— id — уникальный идентификатор автора.

— name — имя автора, заданное в личном кабинете.

body_html

Полный HTML-код поста.

assets

Дополнительные файлы поста: JS, CSS, изображения.

hubspot_post

Данные поста, экспортированного в HubSpot (если экспорт производился), где:

— id — уникальный идентификатор поста.

— url — ссылка на пост в HubSpot.

— blog_id — идентификатор поста в HubSpot.ё

Примечание: чтобы получить в ответе поле hubspot_post, используйте дополнительные параметры.

 

Файлы объекта assets

Файл URL Описание

plugins

https://ceditor.setka.io/clients

/js_plugins/5ca41dc7f0df3e3d6170901b627d32fc/public.js

Скрипты для запуска интерактивных элементов поста (анимаций, галерей, примечаний).

styles

https://ceditor.setka.io/common_css

/common_css_1565603693.css

CSS-файлы стилей поста: общий файл стилей, standalone-стиль и файл системы сеток.

images

https://ceditor.setka.io/clients

/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg

Изображения, используемые в посте, где:

— id — уникальный идентификатор изображения.

— url — ссылка на файл.

— alt — альтернативный текст.

— sizes — несколько вариантов размера изображения, в зависимости от экрана устройства.

Примечание: чтобы получить в ответе поле images, используйте дополнительные параметры.

 

Элементы объекта pagination

Элемент Описание

page

Номер текущей страницы.

limit

Максимальное количество постов на странице.

page_count

Общее количество страниц.

total_count

Общее количество постов.

 

Обращение к API с дополнительными параметрами

Чтобы отфильтровать посты по некоторым признакам, включить в ответ дополнительные данные, или  наоборот, исключить ненужные поля, используйте дополнительные параметры запроса.

 

Фильтры

Посты фильтруются по статусу и автору:

GET https://editor.setka.io/api/v2/posts?filter=state:draft,author.id:1111&token=YOUR_LICENSE_KEY

Доступные фильтры:

  • author — автор поста. Фильтр работает как по id — author.id, так и по имени автора — author.name.
  • state — статус поста: draft — черновик, или published — опубликован, all — все посты.

 

Дополнительные поля

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

GET https://editor.setka.io/api/v2/posts?include=hubspot_post,images&token=YOUR_LICENSE_KEY

Доступные поля:

  • hubspot_post — данные поста, экспортированного в HubSpot.
  • images — все изображения, использованные в посте.

 

Выбор данных поста

Если требуется получить отдельные поля из личного кабинета, например, исключительно идентификаторы и названия постов, используйте параметр select:

GET https://editor.setka.io/api/v2/posts?select=id,title&token=YOUR_LICENSE_KEY

Доступные поля:

  • id — уникальный идентификатор поста.
  • title — название поста.
  • style_name — название стиля, используемого в посте.
  • layout_nameназвание системы сеток, в которой свёрстан пост.
  • reading_timeпримерное время чтения поста в секундах.
  • preview_link — ссылка на превью поста в личном кабинете.
  • state — состояние поста, где draft — черновик, published — опубликован.
  • created_at — дата и время создания поста.
  • updated_atдата и время последнего обновления поста.
  • published_at — дата публикации поста.
  • author — данные об авторе поста.
  • body_html — полный HTML-код поста.
  • assets — дополнительные файлы поста (JS, CSS, изображения).
  • hubspot_post — данные поста, экспортированного в HubSpot (если экспорт производился).

 

Ошибки API

Ошибки, которые может отдавать Setka Cloud API.

HTTP/1.1 401 Unauthorized

{
   "error": "Not authorized!"
}

Ошибка возникает при использовании некорректного лицензионного ключа (token).

HTTP/1.1 404 Unauthorized

{
"error": "Not found"
}
Ошибка возникает при запросе определённого поста, если пост с таким id не найден.

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