Документация
Создание чата
Используйте веб конструктор, чтобы создать и сконфигурировать чат через веб интерфейс. Используйте готовые плагины: Wordpress
Чтобы чат появился на вашем сайте, скопируйте javascript код из конструктора в раздел head
html кода сайта. Код достаточно вставить один раз. При изменении настроек в конструкторе чат на сайте будет меняться автоматически.
Код для встраивания
<script id="chatBroEmbedCode"> /* Chatbro Widget Embed Code Start */ function ChatbroLoader(chats, async) { async = !1 !== async; var params = { embedChatsParameters: chats instanceof Array ? chats : [chats], lang: navigator.language || navigator.userLanguage, needLoadCode: 'undefined' == typeof Chatbro, embedParamsVersion: localStorage.embedParamsVersion, chatbroScriptVersion: localStorage.chatbroScriptVersion }, xhr = new XMLHttpRequest; xhr.withCredentials = !0; xhr.onload = function() { eval(xhr.responseText); }; xhr.onerror = function() { console.error('Chatbro loading error') }; xhr.open('GET', '//www.chatbro.com/embed.js?' + btoa(unescape(encodeURIComponent(JSON.stringify(params)))), async); xhr.send(); } /* Chatbro Widget Embed Code End */ ChatbroLoader({ encodedChatId: 'YOUR ENCODED CHAT_ID' }); </script>
Динамическое создание
Например, вы хотите разные чаты для разных страниц вашего сайта. В случае, если у вас есть видеохостинг, вы можете создавать разные чаты для каждого видео. Генерируйте эти чаты на лету, используя систему дочерних чатов.
Будет один родительский чат, от которого дочерние чаты унаследуют все настройки:
- Визуальные настройки;
- Настройки авторизации;
- Секретный ключ;
- Настройки конфиденциальности;
- Функция фильтра сообщений;
- Тариф, баланс.
Баны и модераторы будут общими для всех чатов. Это означает, что, заблокировав пользователя в одном чате, он будет автоматически забанен во всех остальных, связанных одним родителем. То же самое с модераторами - модератор, назначенный для одного чата, станет модератором во всех дочерних чатах.
Сначала вам нужно создать родительский чат. Чтобы он мог стать родителем, он должен соответствовать условиям:
- У него должен быть администратор (для этого при создании чата необходимо авторизоваться);
- Он не должен быть дочерним чатом;
- Флажок «Разрешить дочерние чаты» должен быть включен в конструкторе. По умолчанию он выключен.
Теперь можно начать создавать чаты. Передайте следующие параметры в ChatbroLoader
:
parentEncodedChatId
- Id родительского чата;chatTitle
- Уникальное название чата, которое будет использоваться в качестве идентификатора чата;extId
- Необязательный параметр. Если вы хотите иметь два и более разных чатов с одинаковыми названиями, добавьте этот параметр. Timestamp идеально подойдет для этого.
Также вы можете добавить другие параметры для более детальной кастомизации из таблицы, которая будет представлена ниже.
Пример:
<script id="chatBroEmbedCode"> /* Chatbro Widget Embed Code Start */ function ChatbroLoader(chats,async){async=!1!==async;var params={embedChatsParameters:chats instanceof Array?chats:[chats],lang:navigator.language||navigator.userLanguage,needLoadCode:'undefined'==typeof Chatbro,embedParamsVersion:localStorage.embedParamsVersion,chatbroScriptVersion:localStorage.chatbroScriptVersion},xhr=new XMLHttpRequest;xhr.withCredentials=!0,xhr.onload=function(){eval(xhr.responseText)},xhr.onerror=function(){console.error('Chatbro loading error')},xhr.open('GET','//www.chatbro.com/embed.js?'+btoa(unescape(encodeURIComponent(JSON.stringify(params)))),async),xhr.send()} /* Chatbro Widget Embed Code End */ // First unique child chat ChatbroLoader({ parentEncodedChatId: 'Your parent id', chatTitle: 'It\'s a child chat' // Some unique title for chat }); // Second unique child chat ChatbroLoader({ parentEncodedChatId: 'Your parent id', chatTitle: 'It\'s a second child chat' }); // Third unique child chat, but with same name with first chat ChatbroLoader({ parentEncodedChatId: 'Your parent id', chatTitle: 'It\'s a child chat', extId: '1' }); </script>
Если дочерний чат не будет создан, причина будет напечатана в консоли браузера.
Обратите внимание, что при редактировании любого дочернего чата, вы автоматически перенаправляетесь в редактор родительского чата (там будет соответствующее уведомление). Будьте внимательны при настройке родительского чата, тк изменения мгновенно отразятся на всех дочерних чатах.
Таблица параметров
При создании чата в функцию ChatbroLoader
передаются параметры, являющиеся приоритетными над параметрами из базы и сохраняющиеся в конструкторе.
Три типа чата:
- Статичный Встраивается в определенный блок на странице.
- Перемещаемый Свободно масштабируется и перемещается по странице. Контейнер под него можно создать в любом месте.
- История Как и статичный, встраивается в определенный блок страницы, разбивает историю чата на страницы, которые используются для индексации поисковиком.
Параметр | Тип | Значение |
---|---|---|
chatLanguage | String | Язык интерфейса чата: [auto, en, enrtl, ru, pt, fr, fa, es, nl, de, ro, tt, bg, ar] По умолчанию auto |
parentEncodedChatId | String | Используется при создании динамического чата. Подробнее. По умолчанию null |
chatGreeting | String | Показывать краткое сообщение при загрузке чата. По умолчанию null |
Идентификаторы чата | ||
encodedChatId | String | Создается автоматически при создании чата через конструктор. |
encodedChatGuid | String | Целочисленный номер, закодированный алгоритмом md5 и используемый для идентификации чатов. |
chatAlias | String | Краткое имя чата, которое вы можете установить в конструкторе чата. |
Цвета | ||
chatHeaderBackgroundColor | String | Цвет чата, в любом формате. По умолчанию #2D3341 |
chatHeaderTextColor | String | Цвет текста шапки чата. По умолчанию #FFFFFF |
chatBodyBackgroundColor | String | Цвет фона блока с сообщениями. По умолчанию #F7F8FC |
chatBodyTextColor | String | Цвет текста блока с сообщениями. По умолчанию #3F4549 |
chatInputBackgroundColor | String | Цвет фона блоков отправки и участников. По умолчанию #FFFFFF |
chatInputTextColor | String | Цвет текста блоков отправки и участников. По умолчанию #3F4549 |
chatLinksTextColor | String | Цвет ссылок По умолчанию #2B6DAD |
coloredUserNames | Boolean | Включить или отключить цветные имена пользователей. По умолчанию false |
Размещение | ||
isStatic | Boolean | Возможность перемещать чат. По умолчанию false |
chatState | String | Cостояние чата: раскрытый 'maximized' и свернутый 'minimized'. По умолчанию maximized |
containerDivId | String | Id контейнера, в который будет встроен чат. Параметр можно пропустить для перемещаемого чата. Если контейнер не будет найден на странице, он будет создан автоматически после кода вставки или в нижней части страницы. |
Развернутый чат | ||
chatHeight | String | Высота чата. Минимальная доступная высота чата составляет 238 пикселей. Вы можете использовать различные единицы для размеров. По умолчанию 250px |
chatWidth | String | Ширина чата. Минимальная доступная ширина чата - 290 пикселей с включенными аватарами и 250 пикселей, если они отключены. Вы можете использовать различные единицы для размеров. По умолчанию 100% for static chat and 350px for movable chat |
chatTop | String | Верхняя левая Y-координата открытого чата. Отступ сверху будет иметь приоритет над отступом снизу. Игнорируется для статичного чата. По умолчанию null |
chatLeft | String | Координата X левого верхнего угла раскрытого чата. Отступ слева будет иметь приоритет над отступом справа. Игнорируется для статичного чата. По умолчанию null |
chatBottom | String | Координата Y правого нижнего угла раскрытого чата. Для неподвижного чата игнорируется. По умолчанию 2vh |
chatRight | String | Координата X правого нижнего угла раскрытого чата. Для неподвижного чата игнорируется. По умолчанию 2vw |
showChatBorder | Boolean | Показывать рамку чата По умолчанию false |
showChatShadow | Boolean | Тень чата. По умолчанию false |
Свернутый чат | ||
minimizedChatTitle | String | Название для свернутого перемещаемого чата. По умолчанию null |
minimizedChatIcon | String | Значок для перемещаемого свернутого чата. Доступны следующие значения: [icon_1, icon_2, icon_3, icon_4, icon_5, icon_6, icon_7]. |
minimizedChatBorderRadius | String | Радиус для перемещаемого свернутого чата. По умолчанию 5px |
minimizedChatPosition | String | Положение для перемещаемого свернутого чата. Доступны следующие значения: [left, right, bottom]. По умолчанию bottom |
minimizedChatRight | String | Координата X относительно правого нижнего угла для свернутого чата. Отступ справа будет иметь приоритет над отступом слева. Игнорируется, если чат является статичным или, если minimizedChatPosition равно left или right. По умолчанию 20px |
minimizedChatLeft | String | Координата X относительно левого нижнего угла для свернутого чата. Игнорируется, если чат является статичным или, если minimizedChatPosition равно left или right. По умолчанию null |
minimizedChatBottom | String | Y-координата свернутого чата. Игнорируется, если чат статиченый. По умолчанию 20px |
Cообщения | ||
messageFontSise | String | Размер шрифта текста в сообщени. Только в пикселях. По умолчанию 12px |
showUsersAvatars | Boolean | Показать аватары пользователей. По умолчанию true |
avatarBorderRadius | String | Радиус аватаров. По умолчанию 3px |
showDateOfMessage | Boolean | Дата у сообщений. По умолчанию true |
highlightReplies | Boolean | Подсветка ответов. По умолчанию true |
allowLinkToProfile | Boolean | Показать ссылки на профиля пользователя. По умолчанию true |
showBorderBetweenMessages | Boolean | Граница между сообщениями. По умолчанию true |
Меню чата | ||
showChatMenu | Boolean | Показывать меню чата. По умолчанию true |
menuItems | Array | Элементы меню. Передайте массив объектов: [ {url(string), title(string), iconUrl(string), isBlank(boolean)}, ... ]. По умолчанию null |
Права | ||
allowUploadMessages | Boolean | Возможность обновлять в чате контент: подгружать старые сообщения, добавлять новые. По умолчанию true |
allowSendMessages | Boolean | Возможность отправлять сообщения. Только при allowUploadMessages = true. По умолчанию true |
allowResizeChat | Boolean | Возможность растягивать чат. По умолчанию true |
allowMinimizeChat | Boolean | Возможность сворачивать чат. По умолчанию true |
allowUploadFile | Boolean | Возможность загрузки файлов. По умолчанию true |
showParticipantCount | Boolean | Показывать кол-во участников. По умолчанию true |
showMinimizedParticipantCount | Boolean | Показывать кол-во участников для свернутого чата. По умолчанию true |
allowFullScreenImage | Boolean | Разрешить открывать картинки в полноэкранном режиме. В противном случае откроется в новой вкладке. По умолчанию true |
showTitleNotification | Boolean | Показывать уведомление о новом сообщении в заголовок вкладки браузера. По умолчанию false |
disableImages | Boolean | Не конвертировать ссылки в изображения По умолчанию false |
Пользователи | ||
siteDomain | String | Домен, на котором установлен чат. Обязательно передавать вместе с siteUserExternalId, если используется аутентификация через сайт. По умолчанию null |
siteUserExternalId | String | Id пользователя на сайте установившем чат. По умолчанию null |
siteUserFullName | String | Имя пользователя на сайте установившем чат. Только при переданных siteDomain и siteUserExternalId. По умолчанию null |
siteUserFullNameColor | String | Цвет имени пользователя. Только при переданных siteDomain и siteUserExternalId. По умолчанию null |
siteUserAvatarUrl | String | Url аватара пользователя. Только при переданных siteDomain и siteUserExternalId. По умолчанию null |
siteUserProfileUrl | String | Ссылка на профиль пользователя. Только при переданных siteDomain и siteUserExternalId. По умолчанию null |
allowedLoginMethods | Array | Массив возможных методов аутентификации. По умолчанию ['guest', 'vk', 'tg', 'google', 'fb'] |
customLoginLink | String | Добавляет дополнительный метод авторизации в меню входа. По умолчанию null |
signature | String | Защита от подмены имени, вычисляется на сервере на основе переданных параметров как md5(siteDomain + siteUserExternalId + siteUserFullName + siteUserAvatarUrl + siteUserProfileUrl + siteUserFullNameColor + permissions + secretKey). Вы можете найти Ваш секретный ключ в конструкторе чата, включив Защиту от спуфинга. Параметры siteDomain и secretKey всегда участвуют при расчете. Остальные могут быть опущены, если Вы не используете их в ChabroLoader. Пример: https://codepen.io/ChatBro/pen/booKRx?editors=0010 Подробнее По умолчанию null |
permissions | Array | Массив допустимых методов модерации. Используется только в связке с параметром signature. Возможные варианты: ban (возможность банить пользователей), delete (возможность удалять сообщения). Пример: https://codepen.io/ChatBro/pen/booKRx?editors=0010 По умолчанию [] |
История | ||
useStandardHistoryWidgetSettings | Boolean | Стандартный пресет для истории чата. По умолчанию false |
chatPaginatorUrlPrefix | String | Путь к последней странице истории. Пример: https://www.chatbro.com/history. Обязательный параметр для виджета истории. |
hideMessagesOverflow | Boolean | Подстраивать ли высоту чата под высоту контента. По умолчанию true |
showChatOuterFrame | Boolean | Показывать рамку чата. Используется, только когда контент не подгоняется под заданную высоту. По умолчанию true |
batchId | String | Номер страницы истории чата. Используется для отображения истории и пейджинатора. По умолчанию null |
Индексация чата
Для индексации используется отдельный url с разбитой по страницам историей чата.
Пример: http://www.chatbro.com/43eM/history
Определите url, на котором разместите историю, и создайте на этой странице чат с рекомендуемыми параметрами. (useStandardHistoryWidgetSettings = true).
Для навигации по истории нужно в параметрах чата передать chatPaginatorUrlPrefix равный пути до истории. После этого у истории будет отображаться пэйджинатор. Обратите внимение, что пэйджинатор будет отображаться только при запрете подгрузки сообщений (allowUploadMessages = false).
При переходе по страницам, номер страницы добавляется в url. Его надо передать в параметре batchId.
ChatbroLoader({ encodedChatId: '43eM', containerDivId: "someDivId", useStandardHistoryWidgetSettings: true, chatPaginatorUrlPrefix: 'http://www.chatbro.com/43eM/history' });
See the Pen History_en by ChatBro (@ChatBro) on CodePen.
Единый вход
Пользователь, пройдя процедуру аутентификации на вашем сайте, логинится в чате. В чате будут использованы такие же никнейм и аватар, как на сайте. Также будет доступна ссылка на профиль пользователя. Пример реализации.
Фильтрация сообщений
Чтобы избежать нежелательных сообщений, вы можете включить фильтрацию сообщений на стороне сервера. Это можно сделать в конструкторе чата, в разделе «Администрирование». Функция фильтра использует JavaScript. Оператор return использует объект Java со статичными методами, которые возвращают различные действия (например, принимают, изменяют или отклоняют сообщение и другие).
Простейшая функция выглядит следующим образом:
function filter(lastMessages, newMessage, result) { return result.accept(); }
Она просто принимает сообщение пользователя без каких-либо проверок.
- newMessage - объект Message
- lastMessages - массив из 10 объектов Message
- result - объект со статичными методами, возвращающими различные действия
- Принять сообщение
result.acceptMessage();
result.acceptMessage("{comment: 'some text'}");- comment (String) - информационное сообщение для пользователя.
- Отклонить сообщение
result.declineMessage("{comment: 'some text'}");
- comment (String) - предупреждающее сообщение для пользователя.
- Изменить сообщение
result.changeMessage(messageObject);
result.changeMessage(messageObject, "{comment: 'some text'}");- comment (String) - информационное сообщение для пользователя.
- messageObject (Object) - объект Message
- Заблокировать пользователя
result.banUser("{banDurationMin: 15, reason: 'some reason', banType: 'IP', isShadow: false, comment: 'some text for user'}");
- banDurationMin (Long) - длительность бана в минутах.
- reason (String) - причина бана.
- isShadow (Boolean) - Скрытый это бан или нет. По умолчанию нет.
- comment (String) - предупреждающее сообщение в момент, когда пользователь получит бан.
- banType (String) - 2 опции: IP - бан по ip; ID - бан по id пользователя. По умолчанию IP.
- Показать информационное сообщение
result.showInfo("{message: 'some text'}");
- Показать предупреждающее сообщение
result.showWarning("{message: 'some text'}");
- originalText - текст сообщения
- attachments - вложения в форме массива
- fileAttachments
- type = FILE
- fileUrl
- fileName
- fileSize
- photoAttachments
- type = PHOTO
- title
- thumbnailPhotoUrl
- originalPhotoUrl
- videoAttachments
- type = VIDEO
- title
- description
- thumbnailPhotoUrl
- playerUrl
- thumbnailPhotoUrls
- fileAttachments
- domain - реферер отправителя
- url - полный адрес, откуда отправили сообщение
- creatorId - id отправившего
- creatorExternalId - внешний id отправившего
- creatorFullName - имя отправившего
- creatorAvatarUrl - аватар отправившего в виде урла
- creatorProfileUrl - урл до профиля отправившего
- creationDate - время отправки сообщения
События
События выполняют с чатом всевозможные действия. Например, фильтровать ссылки. Обработчики событий определяются только после инициализации чата (срабатывает событие chatLoaded). События привязываются только к документу.
Пример:
document.addEventListener('chatLoaded', function() { document.addEventListener(...); document.addEventListener(...); document.addEventListener(...); ... });
Срабатывает при окончании инициализации чата.
Срабатывает, когда приходит новое сообщение в чат. Предоставляет доступ к сообщению и его контейнеру.
Проиграть звук на сообщение, если вкладка не активна:
document.addEventListener('chatLoaded', function(event) { event.chat.audioControl.loadSoundFile('http://www.soundjay.com/misc/sounds/handbag-lock-4.mp3'); document.addEventListener('newMessage', function(event) { var chat = event.chat; if (!chat.isActiveTab()) { event.chat.audioControl.play(); } }); });
See the Pen New message event by ChatBro (@ChatBro) on CodePen.
Срабатывает при разворачивании/сворачивании чата.
See the Pen maximize & minimize by ChatBro (@ChatBro) on CodePen.
Срабатывает, когда пользователь нажимает на поле ввода. При этом блокируется отправка сообщения. Удобно использовать этот эвент, чтобы пользователь залогинился перед отправкой.
See the Pen chatInputClick by ChatBro (@ChatBro) on CodePen.
Используйте для фильтрации URL и работы с вложениями. Сработает перед отправкой сообщения. Имеет доступ к объекту (Message), который пользователь хочет отправить.
Структура объекта Message:
{ text: '', - Текст сообщения attachments: [ { type: 'photo/video', - тип вложения thumbnailPhotoUrl: '', - url превью изображения originalPhotoUrl: '', - url изображения playerUrl: '' - url вложения. Только для type = video } ... ], links: [ { host: '', - хост ссылки protocol: '', - протокол ссылки url: '' - оригинальный адрес ссылки } ... ] }
Имеет два callback'а:
onSuccess(Message) - Отправка обработанного объекта Message.
onFail(text) - Срабатывает alert с сообщением - text.
See the Pen beforeSendMessage_en by ChatBro (@ChatBro) on CodePen.
Событие срабатывает, когда меняется кол-во человек в чате.
See the Pen Get current online by ChatBro (@ChatBro) on CodePen.
CMS
Плагины реализуют прозрачную аутентификацию для пользователей CMS. Защиту от спуфинга. Страницу истории для индексации поисковыми машинами. Просты в установке и настройке чата.
Плагин чата для wordpress наш флагман. Размещён на собственной странице.
Скачайте файл ru_product-chatbro.xml | |
Выполните импорт. Для этого авторизуйтесь в vBulletin, переместитесь во вкладку Products & Hooks \ Manage Products и кликните по ссылке Add/Import Product. | |
Выберите скачанный файл и нажмите импорт. | |
Откройте меню настроек и выберите «ChatBro options». | |
Вставьте ваш путь до чата, который предварительно нужно создать в личном кабинете. |
Скачайте файл ru_product-chatbro.xml | |
Выполните импорт. Для этого авторизуйтесь в vBulletin, переместитесь во вкладку Products & Hooks \ Manage Products и кликните по ссылке Add/Import Product. | |
Выберите скачанный файл и нажмите импорт. | |
Откройте меню настроек и выберите «ChatBro options». | |
Вставьте ваш путь до чата, который предварительно нужно создать в личном кабинете. |
Скачайте файл ru_chatbro_product.zip | |
Скопируйте содержимое папки core из скаченного архива в вашу vBulletin директорию. После этого вы должны увидеть core/packages/chatbro в вашей vBulletin директории. | |
Выполните импорт. Для этого авторизуйтесь в vBulletin, переместитесь во вкладку Products & Hooks \ Manage Products и кликните по ссылке Add/Import Product. | |
Введите «./packages/chatbro/xml/product_chatbro.xml» в поле или выполните импорт xml файла с сервера и нажмите импорт. | |
Откройте меню настроек и выберите «ChatBro options». | |
Вставьте ваш путь до чата, который предварительно нужно создать в личном кабинете. |
Необходимо зайти в администраторский раздел вашего форума, перейти во вкладку «Внешний вид» и выбрать, стиль который установлен по умолчанию. | |
В боковом меню выбираем шаблон globalTemplate и вставляем код перед закрывающим тегом </body> | |
|
Зайдите на сайт через FTP и откройте файл /includes/functions.php. После строчки $l_login_logout = sprintf($user->lang['LOGOUT_USER'], $user->data['username']); вставьте следующий код: $cb_id = $user->data['user_id']; $cb_profile = 'http://'.$config['server_name'].$config['script_path'] . '/memberlist.php?mode=viewprofile&u='.$user->data['user_id']; switch ($user->data['user_avatar_type']) { case 1: $cb_avatar = 'http://'.$config['server_name'].$config['script_path'] . '/download/file.php?avatar='.$user->data['user_avatar']; break; case 2: $cb_avatar = $user->data['user_avatar']; break; } После строчки 'BOARD_URL' => $board_url вставьте следующий код: 'CB_ID' => $cb_id, 'CB_PROFILE' => $cb_profile, 'CB_AVATAR' => $cb_avatar, | |
Далее необходимо зайти в администраторский раздел вашего форума и перейти во вкладку «Стили». | |
В боковом меню переходим в раздел «Шаблоны», выбираем используемый Вами стиль и жмем «Изменить». | |
Выбираем для редактирования шаблон «overall_footer.html» и вставляем код, не забудьте изменить переменную «chatPath». | |
|
Зайдите на сайт через FTP и откройте файл footer.php (находится в корне сайта). | |
Между тегами </div> и <?php вставьте следующий код: | |
| |
Чтобы создать страницу с историей для индексации, скачайте архив. Файл «files/chat_history.php» переместите из архива в корень сайта. На 37 строке в этом файле нужно изменить значение chatPath. Далее, откройте файл «header.php» (в корне сайта) и после фрагмента: else { $links[] = '<li id="navprofile"'.((PUN_ACTIVE_PAGE == 'profile') ? ' class="isactive"' : '').'><a href="profile.php?id='.$pun_user['id'].'">'.$lang_common['Profile'].'</a></li>'; if ($pun_user['is_admmod']) $links[] = '<li id="navadmin"'.((PUN_ACTIVE_PAGE == 'admin') ? ' class="isactive"' : '').'><a href="admin_index.php">'.$lang_common['Admin'].'</a></li>'; $links[] = '<li id="navlogout"><a href="login.php?action=out&id='.$pun_user['id'].'&csrf_token='.pun_csrf_token().'">'.$lang_common['Logout'].'</a></li>'; } | |
добавьте следующий код: | |
$links[] = '<li id="navchathistory"><a href="chat_history.php">Chat history</a></li>'; |
Скачайте файл chatbro_sm.zip | |
Необходимо зайти в менеджер пакетов, выбрать скачанный архив и загрузить его. | |
В открывшемся окне переходим к установке мода. | |
Нажимаем установить сейчас. | |
Через 5 секунд вы будете перемещены на страницу настроек, где обязательно нужно изменить только первый параметр - Chat path |
Необходимо зайти в панель управления сайтом, перейти в раздел управление дизайном и создать новый глобальный блок 'CHATBRO'. | |
Переходим в режим редактирования шаблонов и выбираем только что созданный блок 'CHATBRO'. Вставляем приведенный ниже код и изменяем значение chatPath. Так же вы можете расскомментировать соответствующие строки в конце кода для ограничения прав гостей. | |
| |
Выбираем шаблон 'Нижняя часть сайта' и вставляем переменную '$GLOBAL_CHATBRO$' перед закрывающим тегом </footer>. |
Incorrect signature
Signature (хэш-подпись) - уникальная строка, которая генерируется на сервере пользователя на основе параметров, переданных в функцию ChatbroLoader, и передаётся на сервер чатбро, где сравнивается. Подпись нужна для защиты чата от подмены пользователей и передачи данных с чужих доменов. Хэш-подпись защищает ваш чат от копирования на другие сайты. Если включена защита от спуфинга, чат будет работать, только если подпись рассчитана верно и домен сайта соответствует переданному.
Больше о спуфинге
Как исправить ошибку?
Возникает, если у чата включена опция защиты от спуфинга, но подпись рассчитана неверно или не передана. Самый простой, но не лучший способ избавиться - отключить защиту от спуфинга в редакторе чата. Зайдите на chatbro, 'Мои чаты', выберите чат, редактировать. В разделе 'Аутентификация' уберите галочку 'Защита от спуфинга'. Проверьте правильность введенных параметров для решения проблемы.
Минимальный набор параметров, передаваемых в функцию:
md5(siteDomain + secretKey)
Функция для примера на JavaScript: crypto.createHash('md5').update('localhostd60c97a2-ae7a-47a3-a72f-4a5b645711ec').digest('hex')
Способ передачи с дополнительными параметрами (некоторые, кроме минимальных, можно опустить, порядок важен):
md5(siteDomain + siteUserExternalId + siteUserFullName + siteUserAvatarUrl + siteUserProfileUrl + permission + secretKey)