(warning) Бота мы начали писать тут: 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

(плюс) работает!

(звезда) хотелось бы еще сделать надписи по русски и с иконками-картинками … но это сделаем в другой раз, а пока радуемся тому что есть, так тоже намного удобнее чем текстом команды набирать


(warning) Если хотите освоить веб-разработку и без труда писать подобный куда, советую курсы Отус:

Tags

Нет комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.