Идентификация авторизованных клиентов, версия 1.0
Для передачи информации об авторизованном на сайте посетителе и дальнейшего её показа в интерфейсе оператора сервиса Webim необходимо добавить на страницы сайта javascript-код следующего вида:
webim_visitor = {
< имя поля >: < значение >,
< имя поля >: < значение >,
< имя поля >: < значение >, ...
crc: HASH
};
Пример:
webim_visitor = {
id: '12345',
display_name: 'Евгений',
phone: '+7 812 3855337',
email: 'support@webim.ru',
crc: 'ccbb082afba5022de58d8eeb7d5599ac'
};
Внимание!
Удалите из этого примера type='text/javascript'
, если на сайте HTML5.
N.B.
Данный пример и данная контрольная сумма посчитана для аккаунта demo
и будет работать только с ним, crc
для вашего аккаунта рассчитывается на основе приватного ключа, который находится в разделе Настройки -> Интеграция вашего аккаунта.
Список поддерживаемых полей:
-
display_name
— имя -
phone
— телефон -
email
— Email -
icq
— ICQ -
profile_url
— ссылка на профиль -
avatar_url
— сcылка на графический файл — аватарку -
id
— ID посетителя на сайте -
login
— login посетителя на сайте -
comment
— комментарий -
info
— дополнительная информация
Все значения полей должны быть строковыми, поле id
является обязательным (по нему идентифицируется пользователь в системе), остальные поля — опциональные. Поле crc
должно содержать контрольную сумму, для вычисления которой необходимо отсортировать поля в соответствии с алфавитным порядком имен полей, сложить значения полей в одну строку, в конец добавить ключ, который находится в разделе Общие настройки -> Приватные ключи вашего аккаунта, после чего от полученной строки вычислить md5
, кодировка при вычислении crc
должна быть либо cp1251
, либо koi8-r
, либо utf-8
. Ключ не должен быть доступен клиентам, и подпись должна формироваться только на вашем сервере.
Внимание!
Мы настоятельно не рекомендуем использовать алгоритм md5
. Наиболее предпочтительным является алгоритм sha-512
.
Для приведенного выше примера это будет:
md5(display_name + email + id + phone + < ключ >)
т. е.
md5('Евгенийsupport@webim.ru12345+7 812 3855337' + < ключ >)
Если вы используете только ссылку на чат в виде client.php
, то вы можете передать объект посетителя через GET параметр provided-visitor
как значение в формате JSON. Для примера выше будет получаться следующая ссылка:
https://(account name).webim.ru/webim/client.php?provided-visitor=%7B%22id%22%3A+%2212345%22%2C%22display_name%22%3A+%22Eugeny%22%2C%22phone%22%3A%22%2B7+812+3855337%22%2C%22email%22%3A%22support%40webim.ru%22%2C%22crc%22%3A%22cdc2c8b0542897dd311fe85754479860%22%7D
Для корректного отображения заголовка и ссылки страницы, с которого открыли ссылку чата, в интерфейсе оператора можно также передать через GET параметр start-page
, как значение в формате JSON с полями title
и url
, например,
{
"title": "Главная страница",
"url": "https://example.com"
}
Для данного примера получится следующая ссылка:
https://(account name).webim.ru/webim/client.php?start-page=%7B%22title%22%3A%22%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0%22%2C%22url%22%3A%22http%3A%2F%2Fexample.com%22%7D
Обработчик авторизации
Используется, например для создания брендированных приложений, в которых пользователи должны авторизовываться с помощь Email и пароля на стороне клиента. Клиент предоставляет некоторый URL (по HTTPS), который принимает два параметра email
и password
с помощью метода POST и возвращает структуру с описанием пользователя в формате JSON в соответствии с текущей спецификацией:
-
Статус ответа
200
и тело ответа:{ "visitor":{ "id":"12345", "display_name":"Евгений", "phone":"+7 812 3855337", "email":"support@webim.ru", "crc":"ccbb082afba5022de58d8eeb7d5599ac" } }
(объект
visitor
аналогичен объектуwebim_visitor
, описанному выше), -
Статус ответа
401
и тело ответа:{ 'error': 'unauthorized' }