inlineButtons
Чтобы вывести инлайн-кнопки в чате, используйте тип ответа inlineButtons
.
Инлайн-кнопки — это кнопки, которые отображаются внутри диалога в виде реплик чат-бота. При нажатии на инлайн‑кнопку пользователь будет перенаправлен на указанный URL.
подсказка
Вы также можете использовать DSL-тег
inlineButtons
или метод $reactions.inlineButtons
.
Кнопки, созданные этими способами, имеют расширенну ю функциональность:
можно задавать переходы в другие стейты, а также передавать данные для функций обратного вызова.Свойства
Ответы с типом inlineButtons
принимают свойство buttons
— массив объектов, описывающих кнопки.
Каждый объект содержит следующие свойства:
Свойство | Тип | Обязательный | Описание |
---|---|---|---|
text | Строка | Да | Текст кнопки. |
url | Строка | Нет | Ссылка на страницу, куда будет перенаправлен пользователь по нажатию кнопки. Если свойство не указано, то при нажатии на кнопку в чат будет отправлено сообщение с текстом кнопки. |
Синтаксис
{
"type": "inlineButtons",
"buttons": [
{
"text": "Кнопка 1",
"url": "https://example.com"
},
{
"text": "Кнопка 2",
"url": "https://example.com/2/"
}
]
}
Ограничения на каналы
Поддерживается только в следующих каналах:
- Алиса
- ВКонтакте
- Маруся
- Чат-виджет
- Салют
- Chat API
- Chat2Desk
- i-Digital WhatsApp
- Telegram
- Viber
предупреждение
Некоторые каналы имеют ограничения на кнопки, например, их максимальное количество в одном сообщении.
Обратитесь к статье Возможности и ограничения каналов, чтобы подроб нее ознакомиться с этими ограничениями.
Использование в сценарии
state: TrackPackage
a: Вы можете отследить вашу посылку по трек-номеру на нашем сайте.
script:
$response.replies = $response.replies || [];
$response.replies.push({
"type": "inlineButtons",
"buttons": [{"text": "Отследить посылку", "url": "https://example.com/trackPackage"}]
});