API метод check_newuser
Этот метод должен быть использован исключительно для проверок регистраций. Для других целей используйте другие методы:
- check_message - Проверка сообщения/комментария.
- send_feedback - Метод обратной связи.
- spam_check - Метод для массовой проверки IP и e-mail.
- backlinks_check- массовая проверка обратных ссылок в спам комментариях.
- Анти-спам модуль для Nginx - проверяет все POST запросы на предмет спама.
Обязательные параметры:
- 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 реализация:
Загрузите библиотеку CleanTalk здесь. Папку с библиотекой нужно поместить в ту же папку что и файл php.
Также вы можете установить библиотеку через composer.
<?php
session_start();
require_once (dirname(__FILE__) . '/lib/Cleantalk.php');
require_once (dirname(__FILE__) . '/lib/CleantalkRequest.php');
require_once (dirname(__FILE__) . '/lib/CleantalkResponse.php');
require_once (dirname(__FILE__) . '/lib/CleantalkHelper.php');
// Получаем параметры конфигурации
$config_url = 'http://moderate.cleantalk.org/api2.0/';
$auth_key = 'ваш_ключ'; // Ваш ключ CleanTalk
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 /lib/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 \lib\Cleantalk();
$ct->server_url = $config_url;
//Проверка
$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.
$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);
Остальное - информационные флаги для вывода подходящих сообщений визитёрам сайта.
В кодах ответа сервера вы так же можете увидеть результат проверки email на существование. В случае блокировки запроса, который содержит несуществующий e-mal в ответе API будет выведено "codes" : "FORBIDDEN EMAIL_NOT_EXISTS". Обратите внимание, такой код будет выведен только в том случае, если именно несуществующий email является главной причиной блокировки.
Подробно коды ответа сервера вы можете изучить в конце этой статьи https://cleantalk.org/help/api-without.
Доступные возможности:
- Персональные черные / белые списки помогают вам блокировать нежелательных пользователей или разрешать действия пользователей, которые были распознаны как спамеры.
- Опция "Стоп-Слова" позволяет вам блокировать комментарии и имена пользователей, которые содержат любое слово из вашего списка Стоп-Слов.
- Чёрный список стран позволяет блокировать все комментарии/регистрации пользователям из отмеченных вами стран.
- Универсальный антиспам плагин - этот плагин может быть установлен на любой веб сайт или CMS.
Примечание: Опции "Черный список стран" и "Стоп-Слова"доступны после покупки Расширенного Пакета. Подробности можно увидеть на странице обновления подписки.
Будет так же интересно
- API метод check_message - проверка сообщений на спам активностьAPI метод check_message Этот метод должен быть использован...
- Метод проверки spam_checkМетод проверки spam_check - проверка по чёрным спискам Общие...
- API метод для получения ключа доступаAPI get_api_key. Получить ключ доступа автоматически API-метод...