Бота мы начали писать тут: http://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
работает!
хотелось бы еще сделать надписи по русски и с иконками-картинками … но это сделаем в другой раз, а пока радуемся тому что есть, так тоже намного удобнее чем текстом команды набирать
Нет Ответов