Идентификация посетителей сайта

Для передачи информации об авторизованном на сайте посетителе и дальнейшего её показа в интерфейсе оператора онлайн-консультанта Webim необходимо добавить на страницы сайта javascript-код следующего вида:

<script type='text/javascript'>
webim_visitor = {
    fields: {
        имя поля: значение,
        имя поля: значение,
        ...
    },
    expires: timestamp,
    hash: "контрольная сумма"
};
</script>

Пример:

<script type='text/javascript'>
webim_visitor = {
    fields: {
        id: "12345",
        display_name: "Евгений",
        phone: "+78123855337",
        email: "support@webim.ru"
    },
    expires: 1481195621,
    hash: "9926acf7f26e2e41e63a14dd7195d29120d14a914208835e1ca69a7c3601ffe8"
};
</script>

Важно! Данный пример и данная контрольная сумма посчитана с использованием случайного ключа.

Контрольная сумма для вашего аккаунта рассчитывается на основе приватного ключа, который находится в разделе Настройки → Приватные ключи.

Список поддерживаемых полей в fields:

  • id - ID посетителя (обязателен)
  • display_name - имя
  • phone - телефон
  • email - email
  • profile_url - ссылка на профиль
  • avatar_url - сcылка на графический файл - аватарку
  • login - login посетителя на сайте
  • comment - комментарий
  • info - дополнительная информация

Все значения полей должны быть строковыми.
Поле id является обязательным (по нему идентифицируется пользователь в системе), остальные поля - опциональные.

Поле expires должно содержать таймстемп (число), указывающий момент времени, до которого предоставленные данные являются валидными. Поле является необязательным.
При использовании этого параметра необходимо обеспечивать валидность предоставляемых данных на протяжении всего времени взаимодействия пользователя с системой: либо значение expires должно выбираться с большим запасом, либо объект с данным должен переодически обновляться по мере приближения момента времени, указанного в expires.

Поле hash должно содержать контрольную сумму.
Для вычисления контрольной суммы необходимо:

  1. Отсортировать поля из fields в соответствии с алфавитным порядком имен полей.
  2. Сложить значения полей в одну строку.
  3. Если вы используете expires - добавьте значение поля в конец.
  4. От полученной строки вычислить контрольную сумму по алгоритму HMAC-SHA256 c использованием приватного ключа аккаунта.

Кодировка при вычислении hash должна быть либо cp1251, либо koi8-r, либо utf-8.

Важно: Приватный ключ не должен быть доступен клиентам, подпись должна формироваться только на вашем сервере. Иначе безопасность Ваших клиентов будет скомпрометирована.

 

Webim — Общие настройки - Приватный ключи

Для приведенного выше примера строка получится:

hmac_sha256("display_name + email + id + phone + expires", "приватный ключ")

т. е.

hmac_sha256("Евгенийsupport@webim.ru12345+781238553371481195621", "приватный ключ")

Если ваш сайт сделан с помощью 1C-Bitrix лучше всего установить модуль Webim для 1С-Битрикс, в этом случае параметры посетителей будут показываться автоматически на основе данных из 1С-Битрикс.

Идентификация клиентов в мобильных приложениях

Если вы используете Webim Mobile SDK для iOS или Android, то для идентификации клиентов вы можете передать json-encoded объект посетителя в SDK. Подробнее читайте в документации:
Документация iOS Mobile SDK
Документация Android Mobile SDK

Идентификация при использовании ссылки на client.php

Если вы используете только ссылку на чат в виде client.php, то вы можете передать объект посетителя через GET параметр provided-visitor как json-encoded значение.
Для примера выше будет получаться следующая ссылка:

https://<account name>.webim.ru/webim/client.php?provided-visitor=%7B%22fields%22%3A%7B%22id%22%3A%2212345%22%2C%22display_name%22%3A%22%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9%22%2C%22phone%22%3A%22%2B78123855337%22%2C%22email%22%3A%22support%40webim.ru%22%7D%2C%22expires%22%3A1481195621%2C%22hash%22%3A%229926acf7f26e2e41e63a14dd7195d29120d14a914208835e1ca69a7c3601ffe8%22%7D

Для корректного отображения заголовка и ссылки страницы, с которого открыли ссылку чата, в интерфейсе оператора можно также передать через GET параметр start-page, как json encoded значение с полями title и url, например:

{"title": "Главная страница", "url": "https://example.com"}

Старая версия идентификации посетителей

Вернуться к главной странице документации