Хранение комментариев Tolstoy Comments в собственной базе

Зачем? Для кого? Плюсы, минусы? Подводные камни?

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

  • А что будет, если вы завтра забросите свой стартап?
  • А если у вас электричество вырубят?
  • А как же хранение данных пользователя (а комментарии несомненно данные пользователя) на серверах в России?
  • А что насчет индексирования поисковиками?

 

Специально для вас мы обзавелись API экспорта комментариев.

 

Слово предоставляется, CTO Tolstoy Comments, Льву Рычковскому:

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

SITE_ID задан в разделе Код — последний параметр скрипта инициализации виджета.

/// html
…(window,document,’script’,’tolstoycomments’,'[SITE_ID]’);</script>

API получения списка комментариев

Все запросы к API нужно формировать на домен https://api.tolstoycomments.com Для получения списка комментариев нужно сделать GET запрос:

/api/export/[API_KEY]/site/[SITE_ID]/comment

— вернет 100 последних комментариев с сайта.

Для получения следующих 100 комментариев нужно подставить значение из поля comment_last_id в новый запрос к API:

/api/export/[API_KEY]/site/[SITE_ID]/comment/[COMMENT_LAST_ID]

— вернет 100 последних комментариев с сайта которые были написаны раньше комментария COMMENT_LAST_ID

Выполняя запросы к API циклично, можно получить все комментарии, написанные за все время на вашем сайте.

Структура ответа сервера:

/// json
{
 "query": {
 "site_id": 0, // переданный в заголовке ваш id сайта
 "skip": null // переданное значение параметра COMMENT_LAST_ID
 },
 "data": {
 "count": 41, // кол-во комментариев в выгрузке
 "comment_last_id": null, // id последнего комментария для выгрузки следующей страницы, если null то значит это последняя страница
 "comments": [
 {
 "id": 186, // id комментария (формат - число)
 "message": "Текст сообщения", // текст сообщения (формат - текст)
 "ip": "", // ip адрес автора комментария  (формат - текст)
 "datеtime": "2017-11-27T10:06:08+00:00", // дата написания (формат - текст)
 "rating": 1, // значение рейтинга (формат - число)
 "attaches": [], // прикрепленный материал (формат - json)
 "visible": true, // true - комментарий опубликован на сайте, false - скрыт/удален/помечен как спам (формат - bool)
 "user": {
 "id": 0, // id пользователя (формат - число)
 "nick": "help", // ник (формат - текст)
 "name": "help", // имя на сайте (формат - текст)
 "email": "help@tolstoycomments.com", // email (формат - текст)
 "phone": "", // телефон (формат - текст)
 "avatar": null // ссылка на аватар (формат - текст)
 },
 "chat": {
 "id": 0, // id чата (формат - число)
 "url": "http://tolstoycomments.com/", // ссылка на страницу чата (формат - текст)
 "title": "Tolstoy comments - современные чаты на твоем сайте" // title чата (формат - текст)
 }
 }
 ]
 }
}

Для индексации комментариев поисковиками, они должны находиться в вашей локальной базе данных и отрисовываться на html страницах с помощью вашего сайта, без использования виджета Tolstoy Comments. В общем виде процесс синхронизации выглядит так:

  1. Необходимо создать таблицы для хранения комментариев
  2. Добавить контроллер, которые будет получал комментарии через определенный интервал времени
  3. Вывести комментарии из локальной базы данных на страницу

Вопросы принимаются в чате.