API Method "check_newuser"

 

Required Parameters:

  • method_name — must be 'check_message';
  • auth_key — API key. To obtain a key please get an account here: https://cleantalk.org/register;
  • sender_email — e-mail you want to check for spam;
  • sender_ip — IP you want to check for spam;
  • js_on — is JavaScript enabled in user's browser or not;
  • submit_time — form submit time in seconds.

 

Here is the list of the necessary parameters that heavily affect filtration. Most of sent requests will be marked as spam without them:

  • all_headers — HTTP-request headers (JSON encoded);
  • sender_nickname — nickname you want to check for spam;
  • sender_info — information about sender, should be JSON encoded, next fields are mandatory:
    • REFFERRER — content of $_SERVER['HTTP_REFERER']
    • USER_AGENT — content of $_SERVER['HTTP_USER_AGENT']

 

Additional parameters:

Sending these parameters will improve filtration.

  • sender_info — any additional information about sender, should be JSON encoded, see example below;
  • response_lang — API response language;
  • tz — sender's timezone;
  • phone — sender's phone number;

 

Examples:

 

Using Wget:

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

 

Using PHP: 

 

<?php session_start(); require_once (dirname(__FILE__) . '/cleantalk.class.php'); // Take params from config $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; // The facility in which to store the query parameters $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']; //Additional parameters. You could the description at the bottom of the page. $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 code:

 

<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 and js_on parameters are very important for checking. Submit_time is the difference between submitting form time and page accessing time. Js_on can be calculated by evaluating some JavaScript code in browser and comparing with reference value on server side.

 

Example of additional parameters usage:

 

$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());

More info can be found on our GitHub: [ https://github.com/CleanTalk/php-antispam ].

 

Response:

Server's response is independent of the platform.

{ "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 }

 

Explanation:

  • js_disabled — JavaScript is disabled;
  • blacklisted — sender is in CleanTalk's Black Lists;
  • comment — comment of server's decision or of other errors (wrong access key etc.);
  • codes — answer codes.
  • fast_submit — to fast form submitting;
  • id — message ID (helpful for our support),
  • account_status — is account enabled or not (0 or 1);
  • allow — is message allowed (1) or not (0);

 

Available features:

  • CleanTalk's Personal Blacklist or Whitelist feature helps you to block unwanted users and to allow users that were recognized as spammers.
  • Stop-Word feature allows you to block comments and nicknames which contain any word from your Stop-Word List.
  • Country-Blacklist allows you to block all comments and registration coming from selected countries.

Notice: Stop-Word and Country-Blacklist features are available after purchasing our Extra Package. Go to your Renewal Licence Page to see the details.

 

You could see the codes explanation at the bottom of this article: https://cleantalk.org/help/api-without.

 

 

Method CHECK_NEWUSER should be used to check registrations for spam. For other purposes you could use other methods:

  • check_message (requires Standard Anti-Spam Licence) — API spam filter to check Posts/comments.
  • send_feedback (requires Standard Anti-Spam Licence) — Send feedback to CleanTalk.
  • spam_check (requires Database API Licence) — Bulk IP and e-mail check for spam activity.
  • backlinks_check (requires Database API Licence) — Mass check for backlinks in spam comments.

 

 


Perhaps it would also be interesting