Webim (Custom Channel API) как входящий канал
Создание канала
Нажмите на панели управления Каналы → Входящие → Подключить канал. В разделе Другие выберите Webim (Custom Channel API).
Заполните поля:
- Название — укажите название для канала или оставьте по умолчанию.
- Токен — оставьте пустым.
- Почтовый адрес — укажите почтовый адрес учетной записи администратора сервиса Webim.
- Пароль — укажите пароль учетной записи администратора сервиса Webim.
- Домен — введите домен, на который вы устанавливаете сервис Webim. Например, для учетной записи
https://examplecom.webim.ru
доменexamplecom
. - Ветка — укажите ветку проекта, которую вы хотите развернуть в канал, по умолчанию
master
. Вы также можете выбрать Git-тег или ввести хеш конкретного коммита. - Публикация — автоматически (после каждого сохранения внесенных в проект изменений) или вручную (с помощью кнопки Опубликовать в строке с описанием канала).
Нажмите Создать. Дождитесь всплывающего окна с результатом публикации.
Тестирование бота
Перейдите в окно диалога с ботом в подключенном мессенджере и отправьте ему приветственную/активационную фразу, предусмотренную вашим сценарием. После этого должен начаться ваш диалог с ботом.
Сценарий
Варианты инициализации чата:
С сообщениями
Для инициализации чата Webim присылает в платформу запрос. При этом если клиент написал в чат до старта диалога, то все сообщения объединяются в одно, а затем направляется в сценарий для обработки.
Для определения новой сессии вы можете использовать обработчи к preProcess
, например:
init:
bind("preProcess", function($context){
if($context.session = {}){
// здесь считаем, что сессия новая
}
})
Без сообщений
При инициализации чата без сообщений от клиента в сценарий отправляется event: newChatStarted
. При этом в eventData
содержится запрос Webim.
Пример запроса:
eventData = {
"chat": {
"id":
},
"location": {
"address":
},
"visitor": {
"id":
}
}
event: newChatStarted
исключено использование ответных реплик бота для пользователя. Данный стейт будет использоваться только для инициализации переменных.Например, использование в сценарии локации клиента, которая была получена из eventData
:
state: ConversationStart || noContext = true
event: newChatStarted
script:
$session.startNewSession = true;
if ($session.startNewSession){
createNewSession($request)
}
$session.location = $request.rawRequest.location;