API-интерфейс

Интерфейс API-функций AlterCPA One позволяет осуществлять проверку визитов напрямую через системы фильтрации. Чтобы подключить API, зайдите на страницу своего профиля в системе. Взаимодействие с сервисом осуществляется по протоколу HTTP. Формат запроса - чистый POST. Формат результата - JSON. Ограничений на количество запросов нет.

Фильтрация

Функции фильтрации позволяют вам максимально быстро проверять визиты на ваши сайты. Они вынесены в отдельный интерфейс, который имеет минимальное время ответа и максимальную производительность.

Проверка визита

URL: https://www.altercpa.one/fltr/{user}-{key}-{id}

В адресе функции вместо {user} и {key} укажите API ID и ключ из профиля, вместо {id} указывается идентификатор добавленного вами фильтр-сайта. Конкретный URL вы можете получить, нажав на кнопку "Инструкция" соответствующего сайта в вашем личном кабинете.

Чтобы проверить свой визит, вам необходимо отправить POST-запрос на указанный выше URL. В качестве тела запроса передайте поля своего массива $_SERVER - мы проанализируем их и покажем ответ в формате JSON. Успешный ответ включает в себя поля status, action и url. Поле status всегда содержит значение ok. Поле action ответа будет содержать allow или deny в зависимости от результатов проверки, поле url будет содержать соответствующий URL-адрес. В ошибочном ответе поле status будет содержать error, код ошибки будет указан в поле error.

POST-часть запроса должна быть в формате x-www-form-urlencoded, формат JSON не поддерживается. Мы анализируем следующие поля из массива $_SERVER:

HTTP_USER_AGENT, HTTP_ACCEPT, HTTP_ACCEPT_CHARSET, HTTP_ACCEPT_ENCODING, HTTP_ACCEPT_LANGUAGE, HTTP_AUTHORIZATION, HTTP_CACHE_CONTROL, HTTP_CONNECTION, HTTP_CONTENT_DISPOSITION, HTTP_DATE, HTTP_EXPECT, HTTP_FROM, HTTP_HOST, HTTP_IF_MATCH, HTTP_IF_MODIFIED_SINCE, HTTP_IF_NONE_MATCH, HTTP_IF_RANGE, HTTP_IF_UNMODIFIED_SINCE, HTTP_MAX_FORWARDS, HTTP_PRAGMA, HTTP_PROXY_AUTHORIZATION, HTTP_RANGE, HTTP_REFERER, HTTP_TE, HTTP_TRAILER, HTTP_TRANSFER_ENCODING, HTTP_UPGRADE, HTTP_VIA, HTTP_X_FORWARDED_FOR, REMOTE_ADDR, REMOTE_PORT, REQUEST_METHOD, REQUEST_URI, QUERY_STRING, HTTP_CF_CONNECTING_IP, HTTP_CLIENT_IP, HTTP_X_REAL_IP, HTTP_X_PURPOSE, HTTP_X_FB_HTTP_ENGINE

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
action Требуемое действие по результатам проверки:
  • allow - визит легитимный, показать целевой сайт
  • deny - визит подозрительный, показать сайт-заглушку
result Реальный результат проверки трафика, который не зависит от включенного режима обучения:
  • allow - визит легитимный, показать целевой сайт
  • deny - визит подозрительный, показать сайт-заглушку
В режиме обучения значение result может отличаться от значения action.
url URL сайта для запроса, зависит от результатов проверки.
target URL целевого сайта, при наличии показывается всегда независимо от результатов проверки.
dummy URL сайта-заглушки, при наличии показывается всегда независимо от результатов проверки.
error Идентификатор ошибки: access-denied при отсутствии доступа к системе проверки, bad-request в случе ошибочного указания адреса URL проверки, bad-site если указанный сайт не найден.

Пример реализации отправки запроса:

$curl = curl_init( 'https://www.altercpa.one/fltr/123-abcd-45' );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $_SERVER );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $curl );
curl_close( $curl );
$result = $result ? json_decode( $result, true ) : [];
if ( isset( $result['action'] && $result['action'] == 'allow' ) {
    include( 'target-index.php' );
} else include( 'dummy-index.php' );

Пример успешного ответа сервера:

{
   "status": "ok",
   "action": "allow",
   "url": "http://black.site/url"
}

Пример ошибочного ответа сервера:

{
   "status": "error",
   "error": "access-denied"
}