API метод check_newuser

Этот метод должен быть использован исключительно для проверок регистраций. Для других целей используйте другие методы:

  • check_message - Проверка сообщения/комментария.
  • send_feedback - Метод обратной связи.
  • spam_check - Метод для массовой проверки IP и e-mail.
  • backlinks_check- массовая проверка обратных ссылок в спам комментариях.

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

  • method_name - имя метода, должно быть 'check_newuser';
  • auth_key - ключ доступа к сервису. Что бы получить ключ зарегистрируйтесь здесь: https://cleantalk.org/register?platform=api;
  • sender_email - email для проверки;
  • sender_ip - IP для проверки;
  • js_on - включен ли JavaScript в браузере;
  • submit_time - время подтверждения формы в секундах;

 

Список необходимых параметров, которые сильно влияют на фильтрацию. Без передачи этих параметров фильтрация может быть не качественной.

  • all_headers - HTTP заголовки;
  • sender_nickname - никнейм для проверки;
  • sender_info - информация об отправителе, должна быть json закодированной, следующие поля являются обязательными:
    • REFFERRER - контент $_server['HTTP_REFERER']
    • USER_AGENT - контент $_server['HTTP_USER_AGENT']

Не обязательные параметры:

Передача данных параметров улучшит фильтрацию.

  • sender_info - любая дополнительная информация об объекте проверки. Должна быть закодирована в JSON.
  • response_lang - язык ответа API;
  • tz - временная зона отправителя;
  • phone - телефон отправителя;

Примеры использования:

Wget запрос:

wget -O- --post-data='{"method_name":"check_newuser","auth_key":"ваш_ключ_доступа","sender_email":"stop_email@example.com","sender_nickname":"John Doe","sender_ip":"127.0.0.1","js_on":1,"submit_time":15}' https://moderate.cleantalk.org/api2.0

PHP реализация: 

<?php session_start(); require_once (dirname(__FILE__) . '/cleantalk.class.php'); // Получаем параметры конфигурации $config_url = 'http://moderate.cleantalk.org/api2.0/'; $auth_key = 'enter key'; // Set Cleantalk auth key if (count($_POST)) { $sender_nickname = 'John Dow'; if (isset($_POST['login']) && $_POST['login'] != '') $sender_nickname = $_POST['login']; $sender_email = 'stop_email@example.com'; if (isset($_POST['email']) && $_POST['email'] != '') $sender_email = $_POST['email']; $sender_ip = null; if (isset($_SERVER['REMOTE_ADDR'])) $sender_ip = $_SERVER['REMOTE_ADDR']; $js_on = 0; if (isset($_POST['js_on']) && $_POST['js_on'] == date("Y")) $js_on = 1; // Тут нужно указать параметры для вызова $ct_request = new CleantalkRequest(); $ct_request->auth_key = $auth_key; $ct_request->agent = 'php-api'; $ct_request->sender_email = $sender_email; $ct_request->sender_ip = $sender_ip; $ct_request->sender_nickname = $sender_nickname; $ct_request->js_on = $js_on; $ct_request->submit_time = time() - (int) $_SESSION['ct_submit_time']; //Здесь можно разместить дополнительные параметры. Которые описаны в конце страницы. $ct = new Cleantalk(); $ct->server_url = $config_url; // Check $ct_result = $ct->isAllowUser($ct_request); if ($ct_result->allow == 1) { echo 'User allowed. Reason ' . $ct_result->comment; } else { echo 'User forbidden. Reason ' . $ct_result->comment; } echo '<br /><br />'; } else { $_SESSION['ct_submit_time'] = time(); } ?>

HTML разметка:

<form method="post"> <label for="login">Login:<label> <input type="text" name="login" id="login" /> <br /> <label for="email">Email:<label> <input type="text" name="email" id="email" value="" /> <br /> <input type="hidden" name="js_on" id="js_on" value="0" /> <input type="submit" /> </form> <script type="text/javascript"> var date = new Date(); document.getElementById("js_on").value = date.getFullYear(); </script>

Параметры submit_time и js_on крайне важны для проверки. submit_time это количество секунд между моментом отправки формы и загрузкой страницы. js_on может быть рассчитана путем оценки результата выполнения JavaScript в браузере и сравнение с эталонным значением на стороне сервера.

Пример использования дополнительных параметров (PHP):

Вы так же можете посмотреть мануал на GitHub [ https://github.com/CleanTalk/php-antispam ].

$sender_info = array( 'page_url' => htmlspecialchars(@$_SERVER['SERVER_NAME'].@$_SERVER['REQUEST_URI']), 'REFFERRER' => htmlspecialchars(@$_SERVER['HTTP_REFERER']), 'USER_AGENT' => htmlspecialchars(@$_SERVER['HTTP_USER_AGENT']), 'fields_number' => sizeof($_POST), ); $sender_info = json_encode($sender_info); if ($sender_info === false) $sender_info = ''; $ct_request->sender_info = $sender_info; $ct_request->phone = '+1 123-456-78-90'; $ct_request->all_headers = json_encode(apache_request_headers());

Ответ сервера:

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

{
 "version" : "7.47",
 "inactive" : 0,
 "js_disabled" : 0,
 "blacklisted" : 1,
 "comment" : "*** Forbidden. Sender blacklisted. ***",
 "codes" : "FORBIDDEN BL",
 "fast_submit" : 0,
 "id" : "5a49267e202169b3a4d9ddefee190065",
 "account_status" : 1,
 "allow" : 0
}

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

  • js_disabled - выключен ли JavaScript;
  • blacklisted - отправитель находится в черном списке;
  • comment - комментарий сервера относительно отправителя, для вывода пользователю;
  • codes - код ответа сервера;
  • fast_submit - слишком быстрая отправка;
  • id - ID запроса (полезно знать при обращении в тех поддержку);
  • account_status - включен ли аккаунт;
  • allow - разрешена ли регистрация (1) или нет (0);

Доступные возможности:

  • Персональные черные / белые списки помогают вам блокировать нежелательных пользователей или разрешать действия пользователей, которые были распознаны как спамеры.
  • Опция "Стоп-Слова" позволяет вам блокировать комментарии и имена пользователей, которые содержат любое слово из вашего списка Стоп-Слов.
  • Чёрный список стран позволяет блокировать все комментарии/регистрации пользователям из отмеченных вами стран.

Примечание: Опции "Черный список стран"и "Стоп-Слова"доступны после покупки Расширенного Пакета. Подробности можно увидеть на странице обновления подписки.

 

Расшифровку кодов ответа сервера вы можете изучить конце этой статьи https://cleantalk.org/help/api-without.