Подключение комментариев

На Турбо-страницах появились следующие возможности:
  • Авторизация и выход пользователя.
  • Отображение списка комментариев, который возвращается вашим API.
  • Добавление комментария.

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

Ниже описаны этапы подключения комментариев:

  1. Шаг 1. Создайте ресурс, который возвращает список комментариев
  2. Шаг 2. Создайте ресурс, который добавляет комментарий
  3. Шаг 3. Подключите комментарии

Шаг 1. Создайте ресурс, который возвращает список комментариев

Примечание. Чтобы Турбо-страницы могли взаимодействовать с API комментариев, разрешите Cross-Origin запросы для *.yandex.*, *.turbopages.org.
Как работает
Турбо-страница отправляет GET-запрос к вашему ресурсу, чтобы получить список комментариев. URL страницы передается в query-параметре ORIGINAL_URL. Ресурс должен обработать полученный URL и вернуть список комментариев для страницы.

Пример запроса, который отправляет Турбо-страница:

GET https://my-domain.ru/api/comments?ORIGINAL_URL={page}&limit={limit}&offset={offset}

ORIGINAL_URL — оригинальный URL страницы, для которой существует Турбо-страница.

limit — максимальное число элементов в списке. Используется для реализации кнопки Показать еще.

offset — смещение в списке. Используется для реализации кнопки Показать еще.

Что надо сделать
Создайте ресурс, который обрабатывает полученный URL и возвращает список комментариев для страницы в формате JSON.
Внимание. Ресурс должен быть доступен по HTTPS-протоколу.
Ожидаемый ответ ресурса
Код HTTP-ответа: 200.
Пример JSON:
{
  "offset": 0,
  "limit": 50,
  "total": 140,
  "comments": [
    {
      "name": "Homer",
      "date": 1536210000,
      "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
      "id": "1111",
      "replies": [
        {
          "name": "Moe",
          "date": 1536210000,
          "content": "Phasellus interdum feugiat dui id facilisis.",
          "id": "2222",
          "answer_to": "1111"
        },
        {
          "name": "Barney",
          "date": 1536210000,
          "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
          "id": "3333",
          "answer_to": "2222"
        }
      ]
    },
    {
      "name": "Homer",
      "date": 1536210000,
      "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
      "id": "55556"
    }
  ]
}
offset *
Смещение в списке. Используется для реализации кнопки Показать еще.
limit *
Максимальное число элементов в списке. Используется для реализации кнопки Показать еще.
total *
Всего комментариев на странице.
id *
Идентификатор комментария.
name *
Имя пользователя.
date *
Дата комментария (timestamp секунды в UNIX-формате).
content *
Текст комментария в виде строки. Inline-тэги не поддерживаются.
replies
Массив ответов.
answer_to
Идентификатор корневого комментария.

Обязательный параметр

Пример ресурса доступен на GitHub.

Шаг 2. Создайте ресурс, который добавляет комментарий

Как работает
Авторизованный пользователь заполняет форму комментария и отправляет его. Турбо-страница отправляет POST-запрос к вашему ресурсу. Ресурс должен обработать запрос и сохранить комментарий в базе данных.

Пример запроса, который отправляет Турбо-страница:

POST https://my-domain.ru/api/comments?ORIGINAL_URL={page}&TURBO_ID={id}

ORIGINAL_URL — оригинальный URL страницы, для которой существует Турбо-страница.

TURBO_ID — идентификатор пользователя, который отправил комментарий.

Пример комментария, который передается в теле POST-запроса:

{
  "answer_to": "2222",
  "text": "lorem ipsum"
}
answer_to
Идентификатор комментария.
text
Текст комментария в виде строки. Inline-тэги не поддерживаются.

Логин пользователя можно определить по TURBO_ID или Cookie.

Что надо сделать
Создайте ресурс, который:
  1. Обрабатывает полученный URL.
  2. Сохраняет отправленный комментарий в базу данных.
  3. Возвращает ответ, если комментарий обработался успешно.
Внимание. Ресурс должен быть доступен по HTTPS-протоколу.
Ожидаемый ответ ресурса

В случае успеха ресурс должен возвращать:

Код HTTP-ответа: 200.
Пример JSON:
{
  "id": "101231",
  "date": 1536210020
}
id
Идентификатор комментария.
date
Дата комментария (timestamp секунды в UNIX-формате).

Пример ресурса доступен на GitHub.

Шаг 3. Подключите комментарии

Примечание. Если вы передавали комментарии с помощью блока комментариев, удалять его из RSS-канала не обязательно. Он будет автоматически заменен.

Чтобы подключить комментарии:

  1. В Яндекс.Вебмастере перейдите на страницу Турбо-страницы → Настройки → Комментарии.
  2. Укажите ссылки на ресурсы:
    • URL списка комментариев, например, https://my-domain.ru/api/list-comments;
    • URL для добавления комментария, например, https://my-domain.ru/api/add-comments.
      Примечание. Если удобно, можно реализовать все на одном ресурсе, например, https://my-domain.ru/api/comments.
  3. Сохраните изменения.
  4. Проверьте отображение комментариев в примере Турбо-страницы.