- Сервис онлайн-консультирования Webim
- -
- База знаний
- -
- Для разработчиков
- -
- Webim Mobile SDK
- -
- Push-уведомления
-
-
-
- API сервиса Webim
- Webim Mobile SDK и мобильное приложение Webim для посетителя
- Встраивание чата Webim на сайт
- Идентификаторы посетителя
- Интеграция со сторонними сервисами
- Интерфейс виджета чата
- Логика обработки чатов
- Настройка сервиса Webim
- Операторы и РМО
- Отделы в сервисе Webim
- Панель приборов: ответы на вопросы
- Эксплуатация сервиса Webim
- Основные понятия и термины
- Сброс пароля
- Система управления ролями и правами доступа
- Шаг 1. Установка виджета Webim на сайт
- Шаг 2. Начальная настройка сервиса
- Шаг 3. Регистрация оператора
- Шаг 4. Подключение каналов общения
-
-
-
- 01. Обнаружение нового посетителя, ожидающего ответа
- 02. Выбор посетителя сайта из списка и начало диалога
- 03. Набор ответа посетителю, выбор шаблона
- 04. Запрос контактной информации у посетителя
- 05. Отправка файла посетителю
- 06. «Телепортация» пользователей
- 07. Переадресация диалога другому оператору
- 08. Отправка переписки на адрес электронной почты оператора
- 09. Назначение категории посетителю
- 10. Блокировка посетителя
- 11. Вставка гиперссылки в сообщение
- 12. Добавление cкрытых сообщений
- 13. Проверка орфографии
- Agent`s Handbook
- Горячие клавиши в РМО
- Загрузка файлов в диалог
- Исходящие диалоги
- Как включить оповещения в Google Chrome
- Очереди в РМО
- Работа с офлайн-обращениями в РМО
-
- Автоприглашения
- Активность сотрудников
- Алгоритмы назначения чатов
- Видимость диалогов
- Возможности и ограничения Webim в каналах общения
- Вход в систему
- Геолокация посетителей
- График работы
- Добавление кнопки Webim в E-mail
- Закрытие диалогов
- Логотип компании в заголовке чата
- Маршрутизация чатов между операторами и ботами
- Маска телефонного номера
- Настройка языков
- Общие настройки организации
- Ограничения по длине сообщений и полей
- Особенности функционала «Начать чат» в каналах общения
- Отделы
- Оценки
- Переназначение специализированных клавиш управления в РМО
- Приоритетные страницы
- Рассылки
- Регистрация операторов и назначение супервизоров
- Системные сообщения
- Список тайм-аутов
- Финансы
- Шаблоны ответов
-
-
- Встраивание административного интерфейса через iframe
- Горизонтальное масштабирование (кластеризация)
- Интеграция с почтовыми серверами
- Обработка файлов, загружаемых в чат
- Описание сервисных периодов Webim
- Параметры настроек сервера
- Редактор настроек аккаунта (account config)
- Редактор ресурсов
- Сетевые конфигурации сервиса Webim
-
-
-
- Webim Mobile SDK 3.0 для интеграции в мобильные приложения iOS
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для Android
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для iOS
- Справочник по Webim Mobile SDK – SDK для интеграции в мобильные приложения iOS (iPhone/iPad)
- Справочник по Webim Mobile SDK для интеграции в мобильные приложения Android
- Push-уведомления
- Webim Cordova Plugin
-
- Webim CRM postMessage Interface
- Как сделать ссылку кнопкой старта чата
- Маршрутизатор чатов
- Обработчики событий чата
- Процедура установки чата Webim на сайт в iframe
-
-
-
- Настройка интеграции с Facebook* (для версий до 10.0 включительно)
- Настройка интеграции с Facebook* с помощью приложения Webim
- Настройка интеграции с Instagram* с помощью приложения Webim
- Настройка приложения для интеграции с Facebook* (для версий до 10.0 включительно)
- Создание бизнес-аккаунта в Instagram*
- Создание страницы организации в Facebook*
- Skype
- Telegram
- Viber
- ВКонтакте
- Одноклассники
-
-
Push-уведомления
Содержание
По умолчанию Webim использует определённые сервисы для отправки push-уведомлений, но по запросу в техническую поддержку могут быть использованы другие сервисы, которые предложит клиент.
Для корректной настройки push-уведомлений необходимо передавать оригинальный токен без изменений.
Чтобы отписаться от push-уведомлений, в качестве токена нужно отправить значение none
.
Также работу с push-уведомлениями можно посмотреть в коде демо-приложений на github.com.
NB: в версии 10.4 для APNs теперь отправка push-уведомлений осуществляется через 443 порт по протоколу HTTP версии 2.
Получение push-уведомлений на Android
- Авторизуйтесь в аккаунте Google;
- Перейдите на портал Firebase;
- Выберите необходимый проект, а если его нет, создайте его (нажав Add Project и выполнив несложные действия по инструкции, отображаемой на экране) и добавьте в него ваше Android-приложение;
- На странице проекта в меню слева нажмите на значок шестерёнки и выберите из выпадающего списка Project settings;
- Перейдите на вкладку Cloud Messaging и скопируйте токен из поля Server key.
Получение push-уведомлений на iOS
.p12
.
NB:
Для выполнения следующих действий требуется действительный аккаунт разработчика Apple, устройство Mac c Xcode и действительный сертификат разработчика, установленный в Цепочку ключей (keychain).
Для получения сертификатов APNs выполните следующие действия:
- Выполните вход в Apple developer center и выберите раздел Identifiers, затем нажмите на кнопку
- Выберите App IDs и нажмите Continue
- Заполните форму нового App ID: введите Description (описание) вашего App ID, в поле Bundle ID выберите Explicit и укажите в строке ввода Bundle ID в виде обратного доменного имени, например
com.push.webim.test
(т.е.test.webim.push.com
в обратном порядке)
- На этой же странице в списке Capabilities отметьте функционал, который вы реализуете в вашем приложении, а также Push Notifications, затем нажмите Continue
NB: убедитесь, что вы создали App ID без подстановочного знака. Для идентификаторов с подстановочным знаком нельзя использовать службу push-уведомлений. Не путайте App ID и Bundle ID: Bundle ID имеет вид
com.company.appname
и определён вinfo.plist
- Подтвердите настройки App ID, нажав Register
- Вернитесь в раздел Identifiers и выберите только что созданный вами App ID
- Прокрутите до Push Notifications и нажмите Configure
- В секции Development SSL Certificate нажмите Create Certificate.
Далее откроется форма создания сертификата. Для создания сертификата потребуется CSR-файл, сгенерированный на вашем устройстве Mac - Откройте на Mac сервис Keychain Access. В шапке приложения (полоска сверху) нажмите Keychain Access и перейдите в Create Assistant -> Request a Certificate From a Certificate Authority
- В окне информации о сертификате заполните форму, указав ваш email и имя. Выберите сохранение на диске и нажмите Continue. CSR-файл будет создан и сохранён на устройстве Mac
- Вернитесь на открытую страницу Apple developer center. В форме создания сертификата нажмите Choose File и загрузите с устройства созданный CSR-файл. Нажмите Continue
- Далее появится страница, где будет отображена информация о новом APNs-сертификате (имя сертификата, дата окончания действия, тип сертификата и информация о создателе сертификата). Нажмите Download, чтобы загрузить его
- Откройте Keychain Access в разделе login -> Certificates появится только что загруженный APNs-сертификат. Выберите его и нажмите Export
- В форме экспорта укажите формат
.p12
Нажмите Save. Далее Mac OS попросит вас подтвердить сохранение: в первой форме просто нажмите Enter, в следующей введите ваш пароль администратора и нажмите Allow - Чтобы создать production-сертификат для вашего iOS-приложения, выполните пункты 6-14 этой инструкции, но в пункте 8 нажмите Create Certificate в секции Production SSL Certificate
NB: после создания сертификата(ов), также убедитесь, что в проекте вашего iOS-приложения в Xcode включено Automatic signing, а в разделе Capabilities вашего проекта включены push-уведомления.
В версии Webim 10.1 стало возможным добавлять сертификаты APNs через интерфейс Консоли управления (см. Сертификаты).
Подключение нескольких приложений
Подключение нескольких Android-приложений
К одному проекту Firebase можно привязать несколько Android-приложений. Так как ключ FCM API KEY относится к проекту в целом, то все приложения, добавленные в проект, смогу получать push-уведомления по этому ключу. Чтобы привязать дополнительные Android-приложения, достаточно выполнить следующее:
- Откройте страницу вашего проекта в Firebase
- Рядом с уже созданным приложением нажмите кнопку Add app
- Выберите платформу Android
NB:
- в рамках проекта Firebase можно добавить приложение в том числе и на платформе iOS, но в этом случае push-уведомления не будут приходить на устройства, где установлено такое приложение, так как сервис Webim не поддерживает данную функциональность. О добавлении дополнительного приложения на платформе iOS сказано в следующем подразделе.
- Все Android-приложения, которые подключены к одному аккаунту Webim, должны быть привязаны к одному проекту в Firebase. Получение push-уведомлений на приложения, привязанные к разным проектам Firebase, не предусмотрено.
Подключение нескольких iOS-приложений
Для подключения дополнительных iOS-приложений в Apple developer center требуется создать новый App ID и получить сертификаты APNs в формате .p12
(см. инструкцию) для каждого дополнительного приложения, после чего обратиться в техническую поддержку и предоставить эти сертификаты. Далее сотрудники Webim с помощью этих сертификатов настроят отправку push-уведомлений для всех дополнительно привязанных приложений на вашем аккаунте.
Проксирование push-уведомлений
proxies
, содержащийся в редакторе настроек аккаунта (account config) (для hosted-клиентов). В обоих случаях требуется предоставить/указать следующие параметры для подключения к прокси-серверу, через который будет осуществляться отправка push-уведомлений:
Параметр | Описание |
---|---|
"host" | IP-адрес прокси-сервера, например "127.0.0.1" |
"port" | Порт подключения к серверу, например "3128" |
"user" | Имя пользователя, например "user1" |
"password" | Пароль пользователя, например "P@ssw0rd" |
Параметры push-уведомлений
Для автоматической обработки и отображения push-уведомлений Ваше приложение должно быть осведомлено о возможных типах уведомлений и об аргументах, присылаемых в этих уведомлениях. Звёздочкой отмечены названия обязательных параметров.
Типы данных
Тип | Описание |
---|---|
Double | Вещественный тип числа |
Long/Int | Целочисленный тип |
String | Строковый тип |
Enum | Значение из списка возможных (строковый тип) |
Array< *> | Список значений (массив) |
Уведомление
Название параметра | Тип | Пример | Описание |
---|---|---|---|
type* | Enum | "P.OM" | Тип push-уведомления. Возможные значения: P.OM, P.OF, P.CR, P.OA, P.WM |
event* | Enum | "add" | Действие push-уведомления. Возможные значения: add, del. |
message | Message | См. описание объекта Message. | Сообщение push-уведомления. Обязателен, если type – P.OM, P.OF, P.CR. |
params | Array | ["Никита К","1232"] | Параметры push-уведомления. Обязателен, если type – P.OA, P.OM, P.OF:
|
Возможные значения параметра loc-key
(iOS) и type
(Android)
- "P.CR" означает, что оператор прислал запрос контактных данных;
- "P.OA" означает, что оператор взял чат в обработку;
- "P.OF" означает, что оператор прислал файл;
- "P.OM" означает, что оператор прислал сообщение;
- «P.WM» означает, что оператор прислал виджет (для поддержки данного функционала необходимо обратиться в службу поддержки).
Значения массива аргументов — параметр loc-args
(iOS) и params
(Android)
- для "P.CR" – массив пустой;
- для "P.OA" – массив из одного элемента: имя оператора;
- для "P.OF" – массив из двух элементов: имя оператора, название файла;
- для "P.OM" – массив из двух элементов: имя оператора, текст сообщения.
Данные параметры приходят без названий, порядок в массиве важен.
Возможные значения параметра "event" (Android)
- "add" – push-уведомление необходимо показать;
- "del" – push-уведомление необходимо удалить.
Если push-уведомление имеет тип "P.OF" или "P.OM", то параметр "message" содержит в себе сообщение, в ином случае этого параметра нет.
Message
Название параметра | Тип | Пример | Описание |
---|---|---|---|
name* | String | "Никита К" | Имя автора сообщения. |
avatar* | String | "/webim/images/avatar/wmtest2_181510.png" | URL аватара автора сообщения. |
kind* | Enum | "operator" | Тип сообщения. Возможные типы: operator, file_operator, cont_req. |
clientSideId* | String | "03ef89e10352b87809e67f74504c4bb6" | ID сообщения. |
ts* | Double | 1.531582962567873E9 | Время сообщения в микросекундах. |
text* | String | "Текст сообщения" | Текст сообщения или строковое представление формата JSON с файлом, сериализованное в строку. |
kind | Тип | Пример | Описание |
---|---|---|---|
"operator" | String | "Здравствуйте, чем я могу Вам помочь?" | Текстовое сообщение оператора. |
"file_operator" | String | "{\"is_voice\": false, \"client_content_type\": \"image/jpeg\", \"image\": {\"size\": {\"width\": 1125, \"height\": 2001}}, \"visitor_id\": \"fbd431f77834ba107b120cfa07fec70d\", \"filename\": \"3_(3).jpg\", \"content_type\": \"image/jpeg\", \"guid\": \"4bfc1ae213b84cd586abc2c787b87a8e\", \"size\": 176001}" | Сообщение с файлом от оператора, содержащее сериализированный JSON. Описание параметров JSON-строки:
|
"cont_req" | String | "Введите, пожалуйста, Вашу контактную информацию." | Сообщение с запросом контактной информации. |
Файл
Название параметра | Тип | Пример | Описание |
---|---|---|---|
client_content_type* | String | "image/jpeg" | Тип файла, указанный клиентом. |
image | ImageItem | {"size": {"width": 300, "height": 300}} | Информация о размерах превью изображения. Обязательный параметр, если файл является изображением. |
visitor_id* | String | "1b0c5d865529418a91f728c525b6d9fd" | ID посетителя. |
filename* | String | "p.jpg" | Название файла. |
content_type* | String | "image/jpeg" | Реальный тип файла. |
guid* | String | "ac741895c19a47078bc54f722951957f" | ID файла. |
size* | Long | 53323 | Размер файла в байтах. |
ImageItem
Название параметра | Тип | Пример | Описание |
---|---|---|---|
size* | ImageSizeItem | {"width": 300, "height": 300} | Размеры превью изображения. |
ImageSizeItem
Название параметра | Тип | Пример | Описание |
---|---|---|---|
width* | Int | 300 | Ширина превью изображения. |
height* | Int | 300 | Высота превью изображения. |
В уведомлениях в iOS используются в основном те же параметры. Среди специфических для этой платформы упомянем:
Название параметра | Тип | Пример | Описание |
---|---|---|---|
loc-key* | String | "P.OM" | Тип уведомления. |
loc-args | Array | Массив с параметрами (см. выше). | Параметры push-уведомления. Обязателен, если type – P.OA, P.OM, P.OF:
|
sound | String | "default" | Звук уведомления. |
webim* | Int | 1 | Параметр для идентификации приложения. Всегда равен 1. |
Примеры для FCM Android
Оператор взял чат в обработку:
{params=["Никита К"], type=P.OA, event=add}
{ params=[ "Никита К", "1232" ], type=P.OM, event=add, message={ "kind": "operator", "clientSideId": "03ef89e10352b87809e67f74504c4bb6", "name": "Никита К", "avatar": "/webim/images/avatar/wmtest2_181510.png", "text": "1232", "ts": 1.531582962567873E9 } }
{ params= [ "Никита К", "p.jpg" ], type=P.OF, event=add, message= { "kind": "file_operator", "clientSideId": "a49529502be8482ba9134756c4a4a211", "name": "Никита К", "avatar": "/webim/images/avatar/wmtest2_181510.png", "text": { "client_content_type": "image/jpeg", "image": { "size": { "width": 300, "height": 300 } }, "visitor_id": "1b0c5d865529418a91f728c525b6d9fd", "filename": "p.jpg", "content_type": "image/jpeg", "guid": "ac741895c19a47078bc54f722951957f", "size": 53323 }, "ts": 1.531584932619524E9 } }
Оператор запросил контактные данные:
{ params=[ ], type=P.CR, event=add, message={ "kind": "cont_req", "clientSideId": "525a9cd6c49a46de90ca4c9016681b56", "name": "Никита К", "avatar": "/webim/images/avatar/wmtest2_181510.png", "text": "Please enter your contact information.", "ts": 1.531584937099446E9 } }
Пример для APNs iOS
{ "aps": { "alert": { "loc-key": "P.OM", "loc-args": ["Имя Оператора", "Сообщение"] }, "sound": "default", }, "webim": 1 }
NB: в зависимости от типа сообщения, в коде push-уведомления для iOS изменяются только значения "loc-key"
и "loc-args"
.