Бота мы начали писать тут: https://nujensait.ru/10776/
Сейчас он умеет отвечать на простейшие запросы, зная некоторые из команд запускаемые в виде текстовых сообщений вида /cmd…
Удобно было бы иметь кликабельное меню с этими командами. Ок, запилим эту фичу!
Пишем код
Менюшка в виде кнопок на клавиатуре
Добавляем экшен с отображением меню:
/**
* @return bool
*/
private function actMenu(): bool
{
$keyboard = [["/help", "/about", "/soc", "/log"], ["/news", "/it"], ["/pic", "/video"]]; // Клавиатура
$reply = "Выберите действие:";
$reply_markup = Keyboard::make([
'keyboard' => $keyboard,
'resize_keyboard' => true,
'one_time_keyboard' => false
]);
$this->tgApi->sendMessage(['chat_id' => $this->msg->getChatId(), 'text' => $reply, 'reply_markup' => $reply_markup]);
return true;
}
тут вместо deprecated $this->tgApi->replyKeyboardMarkup() используем Keyboard::make()
Уже при старте бота будем это меню показывать (здесь далее постоянно, т.к. 'one_time_keyboard' => false )
case "/start":
$ret = $this->actStart();
$this->actMenu();
break;
Проверяем:
- открываем бота в телеграм: @mishaikon_bot
- запускаем команду
/menu
работает!
хотелось бы еще сделать надписи по русски и с иконками-картинками … но это сделаем в другой раз, а пока радуемся тому что есть, так тоже намного удобнее чем текстом команды набирать


Нет Ответов