(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

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

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

 

Tags

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

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

Ваш адрес email не будет опубликован.

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