Для использования параметризированных inline-кнопок в своем Telegram-боте с библиотекой Telegraf, вы можете создать кнопки с использованием слагов (slug) в качестве коллбек-данных и затем обрабатывать нажатия на эти кнопки в соответствующем обработчике коллбек-квери.
Вот пример того, как вы можете организовать код:
1. Создание кнопок с параметрами:
```javascript
const Markup = require('telegraf/markup')
function confirmButtons(id) {
return Markup.inlineKeyboard([
Markup.callbackButton('➡ Подтвердить', `confirm/${id}`)
])
}
// Использование функции для создания клавиатуры
bot.telegram.sendMessage(chatId, 'Текст сообщения', {
reply_markup: confirmButtons(123).extra()
})
```
2. Обработка нажатия на кнопку (поскольку Telegraf не поддерживает декораторы `@Action` как в вашем примере, мы используем свойство `action` объекта `bot`):
```javascript
bot.action(/confirm\/(.+)/, (ctx) => {
// Получаем параметр из коллбек-данных
const id = ctx.match[1];
// Выполняем какие-то действия с этим параметром
ctx.reply(`Подтверждение с ID: ${id}`)
})
```
Когда пользователь нажмет на кнопку с текстом "➡ Подтвердить", Telegraf выполнит обработчик `bot.action` под написанный регулярный выражение `/confirm\/(.+)/`, который извлечет параметр `id` из коллбек-данных и выполнит соответствующий код, например, отправку сообщения пользователю с подтверждением.
Проверьте, что используете корректные методы и свойства объектов в согласии с версией Telegraf, которую вы используете. Версии Telegraf могут отличаться и поддерживать различные интерфейсы для создания клавиатур и обработки коллбеков.
Обратите также внимание, что весь код должен быть обернут в соответствующие вызовы Telegram API, например, чтобы отправить сообщение с кнопками, вам нужно использовать метод `bot.telegram.sendMessage` или `ctx.reply` с соответствующими параметрами.