Чтобы добавить к себе на сайт полноценную систему комментирования много времени не потребуется. Хватай в сети первый попавшийся сервис, к примеру, Cackle - пару минут и готово. Хотя это и самое быстрое и простое решение, но в долгосрочном промежутке времени не лучшее, да ещё и платное. В этой статье мы поговорим, как через API Cackle получить свои комментарии для одной из распространённых задач – переноса их на другую CMS или для вывода на сайте в произвольном месте.
В Cackle механизма переноса или выгрузки данных не предусмотрено, но есть возможность сделать это через API. Для начала нужно перейти на страницу синхронизации комментариев. На ней есть все, что нужно для решения нашей задачи, а именно: пару методов со своими параметрами и даже библиотека, частью которой можно было бы воспользоваться, если бы не ошибки, которые у меня посыпались при работе с ней! В общем, после непродолжительных страданий, я написал свой небольшой класс с несколькими методами внутри, через него мы и получим все необходимые данные для переноса или вывода на сайте.
Подключаем файл с классом:
require_once("APICackle.php");
Теперь создаём объект, передавая настройки для работы с API в конструктор:
$cackle = new APICackle([
"url" => "http://cackle.me/api/3.0/",
"key_account" => "account_api_key",
"key_site" => "site_api_key",
"site_id" => "номер_счётчика"
]);
Все эти параметры можно найти у себя в личном кабинете:
Теперь у нас под рукой есть три метода для работы с системой:
$cackle->get_comments($pages = 0);
$cackle->get_comment($channel = "");
$cackle->get_channels($pages = 0);
Для решения задачи получения всех комментариев, стоит воспользоваться первым методом get_comments(). У него есть числовой параметр $pages – число выводимых страниц (на одной странице 100 элементов), если мы его не укажем, то получим весь список комментариев. Каждый элемент которого - обычный массив:
В Cackle есть такое понятие канал – страница, к которой привязаны данные, в нашем же случае – комментарии. При помощи второго метода мы можем получить список комментариев у определённой страницы. Для этого необходимо в get_comment() передать строковый параметр $channel. Двигаемся дальше, и остался последний метод – get_channels(), который возвращает массив страниц, добавленных в систему:
Работает он по такому же принципу, как и первый метод, рассмотренный выше. Далее, все что осталось - это сохранить полученные комментарии в новой системе или вывести в нужном месте.