AEZAKMI API + интеграция с SELENIUM

API для партнеров и пользователей

Для интеграции в ПО и автоматизации работы с браузерными отпечатками AEZAKMI, в нашем сервисе предусмотрены вызовы API возвращающие ответы в формате JSON

Все API вызовы настроены на прием POST запроса с данными в JSON формате.

Для проверки вашей лицензии — в заголовке “authorization” каждого POST запроса на API Aezakmi требуется указывать ваш аутентификационный ключ

//Headers
authorization: "ApiKey"
Пример: authorization: eyJsb2dpbgiI6Im04bmc4dbCIsInBhc3N3b3JkIjoiOC96UTJEd3RSaf2VpOHJaOHdEOWZRdQXY2W45mxwR09TLzJ5TGN3dEx1a0FvVT0ifQ==
localStorage.getItem("token")

Полученное значение и есть Api Key

Методы API

Создание профиля отпечатка.

POST https://account.aezakmi.run:2087/api/create_fast_profile

authorization: APIKEY

Content-Type: application/json

POST DATA (JSON)

Обязательные параметры

  • profileName: Желаемое имя профиля. (string)
  • login: Ваш логин в Aezakmi. (string)
  • timestamp: текущее время создания профиля в милисекундах c 1 января 1970 года. Стандартное обозначение времени во всех языках програмирования и операционных системах. (int)

В Linux можно получить с помощью команды date ‘+%s’. В JavaScript — new Date(). Можете всегда обратиться в наш саппорт — мы подскажем как получить это значение.

  • canvasNoise: Позволяет указать нужно ли зашумлять работу canvas рендеринга для получения уникального значения в отпечатке. Допустимые значения: true — зашумлять. false — не зашумлять. (boolean)
  • webglNoise: Позволяет указать нужно ли зашумлять работу webgl рендеринга для получения уникального значения в отпечатке. Допустимые значения: true — зашумлять. false — не зашумлять (boolean)
  • audioNoise: Позволяет указать нужно ли зашумлять работу аудиобуфера для получения уникального значения в отпечатке. Допустимые значения: true — зашумлять. false — не зашумлять (boolean)
  • doNotTrack: Позволяет указывать значение опции DoNotTrack на посещаемых сайтах. false — выключена. true — включена. (boolean)
  • ObserverWebRTC: Позволяет указать нужно ли отслеживать изменение выходного ip для автоматической смены WebRTC ip для предотвращения несоответсвия данных. false — выключен. true — включен (boolean)
  • enable911: Позволяет указать данные локального прокси от провайдера 911. false — выключен. true — включен (boolean)

Не обязательные параметры

Выбор отпечатка

  • browser: Позволяет указать желаемый браузер в отпечатке. Chrome или Firefox. Полный список доступных браузеров вы всегда можете посмотреть в личном кабинете при создании профиля. (string)
  • os: Позволяет указать желаемую операционную систему в отпечатке. Windows, Mac OS или Firefox. Полный список доступных операционных систем вы всегда можете посмотреть в личном кабинете при создании профиля. (string)
  • videocard: Позволяет выбрать желаемую модель видеокарты. (string)
  • width: желаемая ширина разрешения экрана. (int)
  • height: желаемая высота расширения экрана. (int)

Для того что бы точно подобрать отпечаток по всем фильтрам с учетом видеокарты — вы можете посмотреть все доступные комбинации отпечатков в этом JSON файле https://gist.github.com/chelovekula/a7350226e8c1f03ef3454575fbed85a9

Прокси

Эти значения нужно заполнять только если хотите использовать прокси в отпечатке. В ином случае их можно оставить пустыми.

  • proxyProtocol: Протокол вашего прокси http \ https \ socks4 \ socks5 (string)
  • proxyIp: ip адрес или домен вашего прокси. (string)
  • proxyPort: порт вашего прокси. (int)

Не на всех прокси есть логин и пароль. В таком случае эти значения можно оставить пустыми.

  • proxyLogin: логин вашего прокси. (string)
  • proxyPassword: пароль вашего прокси. (string)
  • cookies: Позволяет загрузить в ваш профиль куки в json формате. Можно оставить пустой строкой. (object in array[0])

Пример:

Удаление профиля отпечатка

POST https://account.aezakmi.run:2087/api/delete_current_user_profile

authorization: APIKEY

Content-Type: application/json

POST DATA (JSON)

profileName: Имя профиля для удаления

login: Ваш логин в Aezakmi

Пример:

{
"profileName": "APITEST6667",
"login": "admin"
}

Взаимодействие с Selenium

Получение отпечатка.

Для начала вам необходимо отправить на наш апи запрос с именем нужного профиля и вашим логином — + хедер autorization — для того чтоб получить объект отпечатка.

Пример:

Пример на JS: https://ghostbin.co/paste/9p8xb

В результате вы получите массив — нулевым элементом которого будет являться нужный вам объект отпечатка.

Затем вам необходимо будет начать взаимодействия с расширением браузера.

Для взаимодействия вам необходимо посылать команды в консоль расширения по адресу

(у вас ID расширения может отличаться — уточните его на странице управления дополнениями в браузере Настройки-Дополнительние инструменты-Расширения)

Старт профиля

Далее вам необходимо будет вызвать функцию start_profile_api и в качестве аргумента указать полученный вами объект профиля.

Например start_profile_api(fingerprintObject);

Профиль применяется примерно 20 секунд — после чего можно продолжать работать.

Проверка статуса.

После каждого нового применения профиля рекомендуем проверять статус его запуска с помощью вызова функции

check_status_api();

Она возвращает True или False.

Остановка профиля

Просто вызовите в консоли расширения функцию stop_profile_api(); без аргументов.

После того как поработали с отпечатком — необходимо обязательно останавливать профиль.

Механизм следующий

1 — Получаете объект отпечатка

2 — Стартуете профиль передав в функцию полученный отпечаток в качестве аргумента

3 — Проверяете статус

4 — Работаете

5 — Останавливаете профиль

6 — Получаете следующий отпечаток

7 — Снова стартуете профиль

….

9999 — Останавливаете профиль

_________________________________________________________________

Если у вас возникнут вопросы по использованию данных функций вы всегда можете обратиться к нам в поддержку:

ru.aezakmi.run Телеграм Поддержка: t.me/AezakmiSupport Email: support@aezakmi.run Тел: +7 (499) 490–76–62 YT: youtube.com/channel/UC0YYLsm-6l9HXcCG5gbBwMg

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store