Читайте в
документации node-vk-bot, документация на русском. Эта библиотека не поддерживает отправку inline клавиатуры. Вы можете залезть в исходный код и немного его подправить для добавления этой функции. Это некрасиво, но если вам необходимо это для решения задачи - допустимо.
Вот, я уже сделал это за вас. Измените код Keyboard.ts на этот:
export enum KeyboardColor {
PRIMARY = 'primary',
DEFAULT = 'default',
NEGATIVE = 'negative',
POSITIVE = 'positive'
}
/**
* Класс для создания клавиатуры для бота
*/
export default class Keyboard {
private obj: any
constructor(oneTime = false, inline = false) { this.obj = { one_time: oneTime, inline: inline, buttons: [] } }
addButton(label: string, color: string = KeyboardColor.DEFAULT, payload = null) {
if (!this.obj.buttons.length) this.obj.buttons.push([])
let lastRow = this.obj.buttons[this.obj.buttons.length - 1]
if (lastRow.length === 4) throw new Error('Maximum amount of buttons in one row = 4')
lastRow.push({ action: { type: 'text', label, payload }, color })
return this
}
addRow() {
if (this.obj.buttons.length === 10) throw new Error('Maximum amount of rows = 10')
this.obj.buttons.push([])
return this
}
toString() { return JSON.stringify(this.obj) }
}
Конструктор Keyboard теперь будет иметь не 1, а 2 параметра. Первый это oneTime с дефолтным значением false, а второй inline с дефолтным значением false.