Описание метода API CleanTalk Anti-Spam "frontend_data"

Этот метод собирает данные о посетителях сайта в фоновом режиме. Сохраненные данные идентифицируются значением event_token.

  1. Соберите данные с веб-формы..
  2. Отправьте данные JSON через запрос POST на https://moderate.cleantalk.org/api3.0/fronted_data
  3. Проанализируйте ответ и используйте полученный event_token далее в методах check_bot, check_newuser или check_message.

 

Метод лучше использовать с нашим скриптом https://moderate.cleantalk.org/ct-bot-detector-wrapper.js который должен быть включён в код сайта

<script src="https://moderate.cleantalk.org/ct-bot-detector-wrapper.js"></script>​

 

Запрос

Пример данных JSON

{
    "js_event": "js event name",
    "page_url": "visitor viewed page url",
    "event_token": "previously_received_token",
    "data": {},
    "method_name": "frontend_data"
}

Обработка данных

Необходимая информация об обработке данных.

Параметр Объяснение
HTTP метод POST
Формат даных JSON
URL https://moderate.cleantalk.org/api3.0/frontend_data

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

Данные параметры обязательны.

Параметр Объяснение
method_name Имя метода, должно быть "frontend_data".
js_event Имя JS-события. Не более 32 символов.
page_url URL посещённой страницы.
data Объект с действиями посетителя на сайте.

Дополнительные параметры

Использование данных параметров улучшает качество фильтрации.

Параметр Объяснение
event_token Параметр используется для привязки всех собранных пользовательских данных посетителя к запросу. Эти данные собираются с помощью специального скрипта  https://moderate.cleantalk.org/ct-bot-detector-wrapper.js который должен быть добавлен в разметку страницы.

Ответ

Пример ответа

Ответ сервера не зависит от платформы.

{
    "event_token": "5...5",
    "data": {
        "operation_status": "SUCCESS"
    },
    "error_no": 0,
    "error_message": ""
}

Разъяснение ответов

Ключ Объяснение
event_token Токен сохраненных данных. Вы можете использовать его повторно для сохранения изменений данных в том же токене.
error_no Ноль в случае успеха или целочисленный код ошибки.
error_message Пустое поле в случае успеха или краткого описания ошибки.
data JSON-строка с дополнительными данными. В случае успеха у нее будет "operation_status": "SUCCESS"

Примеры кода

Используя Wget

Пример CLI

wget -O- --post-data='{"js_event":"submit","page_url":"http://wp-clean.talk/different-link-to-stuff/","data":{"agent":"bot_detector_1.1.19","timestamp":1721209824},"method_name":"frontend_data"}' https://moderate.cleantalk.org/api3.0/frontend_data

Используя PHP

PHP бакенд

Мы хотели бы подчеркнуть, что вам не нужно интегрировать этот метод на стороне сервера, и все взаимодействия должны осуществляться во внешнем интерфейсе, однако, если есть необходимость в интеграции метода на стороне сервера, вот простой пример того, как выполнить вызов.

                                
<?php use Cleantalk\CleantalkRequest; class FrontendData { protected $_apiUrl = 'https://moderate.cleantalk.org/api3.0/frontend_data'; private $_authKey = 'your_auth_key'; function run() { $data = [ 'auth_key' => $this->_authKey, 'method_name' => 'frontend_data', 'page_url' => 'https://wordpress.demo1.cleantalk.me/contact-form-7/', 'js_event' => 'submit', 'sender_ip' => '1.1.1.1', 'data' => json_decode('{ "agent": "bot_detector_3.1.22", "REFFERRER": "https://wordpress.demo1.cleantalk.me/contact-form-7/", "has_input_focused": true, "headless": false, "page_hits": 3, "cookies_enabled": true, "REFFERRER_PREVIOUS": "https://wordpress.demo1.cleantalk.me/", "screen_info": { "visibleHeight": 922, "fullWidth": 886, "visibleWidth": 886, "fullHeight": 3938 }, "mouse_moved": true, "user_agent": "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0", "timestamp": "2024-07-29 15:29:39", "has_scrolled": true, "typo": [ { "fieldType": "INPUT", "isUseBuffer": false, "isAutocomplete": false, "speedDelta": 62, "label": "Your name*\n", "countOfKey": 3, "firstKeyTimestamp": "2024-07-29 15:29:34", "isAutocompleteExist": false, "lastDelta": 21, "lastKeyTimestamp": "2024-07-29 15:29:34", "fieldName": "your-name" }, { "lastDelta": 0, "fieldName": "apbct__email_id__search_form_48184", "lastKeyTimestamp": "1970-01-01 05:00:00", "isAutocompleteExist": false, "countOfKey": 0, "firstKeyTimestamp": "1970-01-01 05:00:00", "speedDelta": 0, "label": "48184", "isAutocomplete": false, "isUseBuffer": false, "fieldType": "INPUT" } ], "pointer_data": [ [ 267, 703, 105 ], [ 784, 130, 12890 ] ], "has_key_up": true }', true), ]; // Convert to JSON $data = json_encode($data); echo $data . "\n\n"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->_apiUrl); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); $result = curl_exec($ch); curl_close($ch); } } (new FrontendData())->getAction()->run();

Используя HTML

Обычный способ интегрировать метод frontend_data - это включить наш скрипт  https://moderate.cleantalk.org/ct-bot-detector-wrapper.js на ваш сайт.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://moderate.cleantalk.org/ct-bot-detector-wrapper.js"></script>
</head>
<body>
<form method="post" action="check_bot.php">
    <label for="search_field">What do you search?</label>
    <input type="text" name="search_field" id="search_field" /> <br />
    <input type="submit" />
</form>
</body>
</html>

 

Была ли эта информация полезной?

Будет так же интересно

Copied to clipboard