Описание метода API CleanTalk Anti-Spam "check_newuser"
Этот API метод лучше всего подходит для фильтрации спам регистраций, подписок и других форм, где отсутствуют дополнительные поля для ввода данных пользователем или их проверка вам не требуется (опросы, заказы eCommerce и прочее).
- Соберите данные с веб-формы.
- Отправьте данные JSON через запрос POST на https://moderate.cleantalk.org/api2.0.
- Проанализируйте ответ и примите решение.
Запрос
Пример данных JSON
{
"method_name":"check_newuser",
"auth_key":"your_acccess_key",
"sender_email":"stop_email@example.com",
"sender_nickname":"John Doe",
"sender_ip":"127.0.0.1",
"event_token":"sha_256_string_of_event_token"
"submit_time":15,
"sender_info": {
"REFERRER": "https:/referrer-site.com",
"USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3835.0 Safari/537.36"
}
}
Обработка данных
Необходимая информация об обработке данных
Параметр | Объяснение |
HTTP Метод | POST |
Формат данных | JSON |
URL | https://moderate.cleantalk.org/api2.0 |
Обязательные параметры
Без этих параметров метод не будет работать
Параметр | Объяснение |
method_name | Имя метода, должно быть "check_newuser" |
auth_key | Ключ Доступа к сервису. Что бы получить Ключ Доступа зарегистрируйте аккаунт здесь |
Дополнительные параметры
Эти параметры необходимы для фильтрации спама
Параметр | Объяснение |
sender_ip | IP отправителя |
sender_email | Емейл отправителя |
sender_nickname | Никнейм отправителя |
event_token | В макет страницы необходимо добавить специальный скрипт https://moderate.cleantalk.org/ct-bot-detector-wrapper.js. Он будет собирать на нашем сервере данные посетителя с фронтенда вашего сайта. Когда вы отправите на наш сервер запрос на проверку спама, все собранные с фронтенда данные будут привязаны к запросу по значению параметра event_token. |
event_token_enabled | Для правильной фильтрации спама вы должны установить этот флаг в 1, если подключили Bot Detector и передаете event_token |
submit_time | Время отправки формы в секундах. Этот параметр можно не передавать если вы передали флаг event_token_enabled и подключили Bot Detector |
js_on | Флаг прохождения JavaScript‑теста. 1 — на стороне посетителя успешно выполнился встроенный JS‑скрипт. 0 или отсутствие поля — скрипт не отработал. Этот параметр можно не передавать если вы передали флаг event_token_enabled и подключили Bot Detector |
all_headers | Заголовки HTTP-запроса (закодирована в JSON) |
sender_info |
Информация об отправителе (закодирована в JSON). Включите следующие обязательные параметры: REFERRER: содержимое $_SERVER["HTTP_REFERER"] USER_AGENT: содержимое $_SERVER["HTTP_USER_AGENT"] |
Ответ
Пример ответа
Ответ сервера не зависит от платформы.
{
"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 включен/отключен (1/0) |
blacklisted | Отправитель находится в черном списке CleanTalk |
comment | Комментарий сервера относительно запроса, для вывода пользователю |
Коды ответа |
Коды ответов сервера. Могут быть перечислены через пробел:
|
fast_submit | Слишком частая отправка формы. Обратите внимание на отличие от кода FAST_SUBMIT |
id | ID запроса (полезно знать при обращении в техническую поддержку) |
account_status | Статус аккаунта: включен/отключен (1/0) |
allow | Решение сервера. Разрешен запрос (1) или нет (0) |
В коде ответа сервера вы также можете увидеть результат проверки адреса электронной почты на существование. Если заблокированный запрос содержит несуществующий адрес электронной почты, вы увидите следующий текст в поле кода ответа API: "FORBIDDEN EMAIL_NOT_EXISTS"
Обратите внимание, что этот код будет отображаться только в том случае, если несуществующий адрес электронной почты является основной причиной блокировки.
Примеры кода
Чтобы интегрировать CleanTalk в ваш проект, используйте наши официальные библиотеки.
Все примеры доступны в репозиториях GitHub (инструкции по использованию см. в файлах README):
- PHP: CleanTalk/php-antispam
- Python: CleanTalk/python-antispam
- Django: CleanTalk/django-antispam-no-recaptcha-captcha
- Node.js: westtrade/cleantalk
- C#: CleanTalk/csharp-antispam
Wget
CLI пример
wget -O- --post-data='{"method_name":"check_newuser","auth_key":"your_acccess_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
GoLang
Backend (GoLang)
package main
import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
"net/http"
"strings"
)
var authKey string = "enter_your_key"
var configUrg string = "http://moderate.cleantalk.org/api2.0/"
var agent string = "golang-api"
type newUserInputData struct {
AuthKey string `json:"auth_key"`
Agent string `json:"agent"`
SenderEmail string `json:"sender_email"`
SenderIp string `json:"sender_ip"`
SenderNickname string `json:"sender_nickname"`
JsOn uint `json:"js_on"`
SubmitTime uint `json:"submit_time"`
}
type NewUserResultData struct {
Version string `json:"version"`
Inactive uint `json:"inactive"`
JsDisabled uint `json:"js_disabled"`
Blacklisted string `json:"blacklisted"`
Comment string `json:"comment"`
Codes string `json:"codes"`
FastSubmit uint `json:"fast_submit"`
Id string `json:"id"`
AccountStatus uint `json:"account_status"`
Allow uint `json:"allow"`
}
func main() {
inputData := newUserInputData{
MethodName: "check_newuser",
AuthKey: authKey,
Agent: agent,
SenderEmail: "stop_email@example.com",
SenderIp: "192.168.0.1",
SenderNickname: "testuser",
JsOn: 1,
SubmitTime: 5,
}
resultData, err := CheckNewuser(inputData)
if err != nil {
fmt.Println(err.Error())
return
}
if resultData.Allow == 1 {
fmt.Println(fmt.Sprintf("User allowed. Reason %s", resultData.Comment))
return
}
fmt.Println(fmt.Sprintf("User forbidden. Reason %s", resultData.Comment))
}
func CheckNewuser(inputData newUserInputData) (NewUserResultData, error) {
inputDataBytes, err := json.Marshal(inputData)
var resultData NewUserResultData
if err != nil {
return resultData, err
}
var body io.Reader = strings.NewReader(string(inputDataBytes))
req, err := http.NewRequest(http.MethodPost, configUrg, body)
if err != nil {
return resultData, err
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return resultData, err
}
defer resp.Body.Close()
answer, err := ioutil.ReadAll(resp.Body)
if err != nil {
return resultData, err
}
err = json.Unmarshal(answer, &resultData)
return resultData, nil
}
Frontend (HTML)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://moderate.cleantalk.org/ct-bot-detector-wrapper.js" id="ct-bot-detector-js></script>
</head>
<body>
<form method="post" action="chek_newuser.php">
<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="submit" />
</form>
</body>
</html>
Ссылки по теме
Опции, доступные при использовании с методом:
- Персональные списки CleanTalk позволяет блокировать нежелательных пользователей и разрешать пользователей, которые были ошибочно распознаны как спамеры.
- Опция Стоп-Слова позволяет блокировать комментарии и псевдонимы, содержащие любое слово из вашего списка стоп-слов.
- Опция блокировки стран позволяет блокировать все комментарии и регистрации из выбранных стран.
Опции Стоп-Слова и блокировка по странам доступны после покупки нашего Дополнительного Пакета. Перейдите на страницу продления лицензии, чтобы увидеть подробности.
Будет так же интересно
- CleanTalk Анти-Спам. API Метод check_messageОписание API метода CleanTalk Anti-Spam "check_message" Данный метод лучше...
- Метод проверки spam_checkМетод проверки spam_check - проверка по чёрным спискам Необходимые...
- Расширенный пакет для сервиса Безопасности сайтаРасширенный пакет для сервиса Безопасности сайта 45...