Описание API метода CleanTalk Anti-Spam "check_message"
Данный метод лучше всего подходит для форм, содержащих пользовательский контент (UGC), например: комментарии, отзывы или контактные формы.
- Соберите данные с веб-формы.
- Отправьте данные JSON через запрос POST на https://moderate.cleantalk.org/api2.0.
- Проанализируйте ответ и примите решение.
Запрос
Пример данных JSON
{
"method_name":"check_message",
"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"
},
"message": "Hello I am a spammer visit this https://badlinkexample.com"
}
Обработка данных
Необходимая информация об обработке данных
Параметр | Объяснение |
HTTP Метод | POST |
Формат данных | JSON |
URL | https://moderate.cleantalk.org/api2.0 |
Обязательные параметры
Без этих параметров метод не будет работать
Параметр | Объяснение |
method_name | Имя метода, должно быть "check_message" |
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 |
message | Сообщение посетителя. Будет проверено на наличие подозрительных ссылок, контактных данных и т.д. |
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" : "DENIED 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: "DENIED 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_message","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
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 messageInputData struct {
MethodName string `json:"method_name"`
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"`
AllHeaders string `json:"all_headers"`
Message string `json:"message"`
SenderInfo string `json:"sender_info"`
ResponseLang string `json:"response_lang"`
PostInfo string `json:"post_info"`
StoplistCheck uint `json:"stoplist_check"`
}
type MessageResultData 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"`
StopQueue uint `json:"stop_queue"`
Spam uint `json:"spam"`
}
func main() {
inputData := messageInputData{
MethodName: "check_message",
AuthKey: authKey,
Agent: agent,
SenderEmail: "stop_email@example.com",
SenderIp: "192.168.0.1",
SenderNickname: "testuser",
JsOn: 1,
SubmitTime: 5,
Message: "Test message",
}
resultData, err := CheckMessage(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 CheckMessage(inputData messageInputData) (MessageResultData, error) {
inputDataBytes, err := json.Marshal(inputData)
var resultData MessageResultData
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
Ссылки по теме
Опции, доступные при использовании с методом:
- Персональные списки CleanTalk позволяет блокировать нежелательных пользователей и разрешать пользователей, которые были ошибочно распознаны как спамеры.
- Опция Стоп-Слова позволяет блокировать комментарии и псевдонимы, содержащие любое слово из вашего списка стоп-слов.
- Опция блокировки стран позволяет блокировать все комментарии и регистрации из выбранных стран.
Опции Стоп-Слова и блокировка по странам доступны после покупки нашего Дополнительного Пакета. Перейдите на страницу продления лицензии, чтобы увидеть подробности.
Будет так же интересно
- CleanTalk Анти-Спам. API метод check_newuser Описание метода API CleanTalk Anti-Spam "check_newuser" Этот API метод лучше...
- Метод проверки spam_checkМетод проверки spam_check - проверка по чёрным спискам Необходимые...
- Расширенный пакет для сервиса Безопасности сайтаРасширенный пакет для сервиса Безопасности сайта 45...