| HTTP метод | Endpoint | Ограничение | Комментарий |
|---|---|---|---|
| POST | http://cackle.me/api/3.0/comment/post.json | 1 раз в 5 секунд | Импорт комментариев на определенной странице сайта. Кодировка данных запроса UTF-8. |
Параметры запроса:
| Параметр | Описание | Комментарий |
|---|---|---|
| id | Идентификатор вашего виджета | Можно получить в панели администрирования: меню "Установить", вкладка "CMS Платформа", выбрать WordPress. |
| siteApiKey | Секретный ключ виджета | Можно получить в панели администрирования: меню "Установить", вкладка "CMS Платформа", выбрать WordPress. |
| accountApiKey | Секретный ключ аккаунта | Можно получить в панели администрирования: меню "Установить", вкладка "CMS Платформа", выбрать WordPress. |
| comments | Список комментариев в формате JSON |
Пример параметра comments:
{
"chan": "12345",
"url": "http://site.ru/post12345",
"title": "Мой сайт | Пост 12345",
"comments": [{
"id": "111",
"msg": "Привет мир!",
"ip": "84.195.0.32",
"status": "approved",
"created": "1422820372367",
"user": {
"id": "808",
"name": "Остап Бендер",
"email": "ostap@example.org",
"avatar": "//yourscr.com/40cc32af4753cdee62f527ef8ebe37df.png"
}
}, {
"id": "888",
"parent": "111",
"msg": "Да, да, привет.",
"media": "http://cackle.me/static/img/flat-comment.png http://cackle.me/static/img/flat-review.png",
"ip": "40.105.4.195",
"status": "approved",
"created": "1425412776446",
"name": "Саня",
"email": "san@example.org"
}]
}
Описание полей страницы:
| Параметр | Обязательный | Описание | Комментарий |
|---|---|---|---|
| chan | Нет | Идентификатор к которому будут привязаны комментарии на странице вашего сайта | По умолчанию это адрес страницы без протокола и домена. Например: для адреса http://example.ru/page/12345, chan будет /page/12345. Если ваш сайт использует CMS (WordPress, Joomla, Bitrix), то chan это идентификатор поста из БД. |
| url | Да | Адрес страницы | |
| title | Нет | Название страницы | Обычно берется из тега <title>...</title> на странице сайта. |
Описание полей comments:
| Параметр | Обязательный | Описание | Комментарий |
|---|---|---|---|
| id | Да | Идентификатор комментария | Уникален в рамках одного виджета. |
| parent | Нет | Идентификатор родительского комментария | |
| msg | Да | Текст комментария | |
| media | Нет | Ссылки на изображения | Список ссылок разделенные пробелами на изображения в форматах png, jpg, gif. |
| ip | Да | IP адрес | С которого был опубликован комментарий. |
| status | Да | Статус комментария | Доступны: pending (в ожидании), approved (одобрен), spam (отмечен как СПАМ), deleted (удален). По умолчанию выставляется approved. |
| created | Да | Дата создания | В миллисекундах. |
| user | Да, если name, email отсутствуют | Автор комментария | Зарегистрированный пользователь вашего сайта. Если подключена услуга "Единая авторизация", то такой пользователь может входить под своим аккаунтом. |
| name | Нет | Имя анонимного юзера | |
| Нет | Email анонимного юзера |
Пример импорта на php с библиотекой curl
$comments=[];
$comments[]=Array(
'id' => '111',
'ip' => '111.111.111.111',
'status' => 'approved',
'msg'=> 'Привет мир!',
'created' => '1422820372367',
'user' => array(
'id' => '808',
'name' => 'Остап Бендер',
'email' => 'ostap@example.org',
'avatar' => 'http://cackle.me/static/img/logo.png'
)
);
$data = array(
'chan' => '12345',
'url' => 'http://cackle.me/test',
'title' => 'Мой сайт | Товар 12345',
'comments' => $comments);
function sendReviewsRequest($fields){
$postfields = json_encode($fields);
$curl_fields = array(
'id' => 17216,
'accountApiKey' => 'YrFno4qO3keCSOKGfjPh2SCbwkD3N6qp1NtCE66hA2IuxRtETTnmWlyyH7dOnVOa',
'siteApiKey' => '97aCphfMrlnXIxxdYPFsF4dP4UrGc9oZVJLghOpDXneXgxIUnGdayyRzYj4az5TZ',
'comments' => $postfields
);
$curl=curl_init('http://cackle.me/api/3.0/comment/post.json');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLINFO_HEADER_OUT,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($curl_fields));
$result = curl_exec($curl);
curl_close($curl);
print_r($result);
}
sendReviewsRequest($data);