Интеграция с Chat-api позволяет общаться: синхронно и асинхронно отправлять запросы и получат ь ответы. Этот метод будет полезен, если у вас уже есть свое мобильное приложение и вы хотите интегрировать чат-бот непосредственно в него. Для начала работы вам будет достаточно настроить чат-бот, подключить желаемый сценарий и добавить интеграцию с Chat API с поддержкой нужного протокола.
Для работы с ChatApi необходимо иметь возможность:
- получить токен приложения, который будет использовать в запросах api;
- задать вебхук для отправки асинхронных событий.
Настройка интеграции c Chat API
Публикация в проекте Code/Graph создается только после выбора интеграции.
-
Оформите в StudioAdmin заявку Разработка ботов с интеграцией в сторонние приложения на интеграцию своего чат-бота. При получении заявки в работу вы получите письмо на указанный ранее адрес. После согласования заявки модератором новая интеграция появится в списке интеграций проекта SaluteBot.
-
Откройте проект SaluteBot и перейдите в режим настроек проекта.
-
Откройте проект SaluteBot и перейдите в раздел Настройки.
-
В разделе Чат-платформа выберите в качестве интеграции Chat API и нажмите Выбрать.
-
Нажмите Копировать настройки. В представленной форме вы можете найти токен интеграции для копирования и дальнейшего использования, а также примеры GET и POST и асинхронного запросов и пример получаемых асинхронных сообщений.
-
Нажмите Сохранить, в результате в настройках проекта SaluteBot в качестве выбранной интеграции отобразится Chat API.
В результате в проект добавится интеграция Chat API, для которой можно скопировать вебхук чат-бота.
Спецификация
Подключение производится по внутреннему протоколу. По ссылке вы можете ознакомиться с OpenAPI-спецификацией.
Ниже вы найдете информацию о форматах типов ответов чат-бота, которые возвращаются в ответе на запрос к нему. По умолчанию ответы приходят в поле data
.
Форматы типов ответов бота
Текст
{
"type":"text",
"text":"текст1",
"state":"/multipleMessages"
}
Изображение
{
"type":"image",
"imageUrl":"https://someUrl.ru",
"state":"/2"
}
Кнопки
{
"type":"buttons",
"buttons":[{"text":"button1"},{"text":"button2","transition":"/someState"}],
"state":"/4"
}
Аудио
{
"type":"audio",
"audioUrl":"https://someUrl.ru",
"state":"/3"
}
Файл
{
"type":"file",
"url":"https://host/someFile.pdf",
"name":"some_name"
}
Кастомный ответ
{
"type": "raw",
"body": {"param1": "value1", "param2": "value2", "param3": "value3"}
}
Пример передачи от бота кастомной переменной в ответе
При срабатывании интента запишите название в переменную и передайте вместе с ответом бота.
Кастомную дату можно отправить сообщением через блок JS код в Graph или тэгом script
в Code.
var reply = {
type: 'raw',
body: {
"param1": "value1",
"param2": "value2",
"param3": "value3"
};
$response.replies = $response.replies || [];
$response.replies.push(reply);
Кнопки будут переданы в содержании data.replies[]
в сообщениях с типом buttons
или image
.
Ограничения
В работе интеграции недоступны следующие возможности:
-
Работа блока Перевод на оператора.
-
Отправка контактных данных пользователем в чат-бот с помощью блока Отп равить данные оператору. В этом случае в сценарии будет выполнен переход по ошибке.