How to show options in telegram bot?

Solution 1:

For that, you have to talk to BotFather.

  1. In the Telegram App, open the chat with BotFather.

  2. Send him /setcommands. He will present you with a list of your bots.

  3. Pick the bot for which you want to set the command menu.

  4. Compose and send the command list. Using your image as an example, these 4 lines should do:

start - Description 1
menu - Description 2
help - Description 3
stop - Description 4

Note that command part of each line(left side of - signs) must have just lowercase characters, and no slashes. There should also be spaces around the - sign.

Once you complete this process, exit and kill the Telegram App. Re-open it, go to the chat with your target bot, type a / (or tab on the / button next to the text field), the command menu should come up.

Solution 2:

New dynamic way to set commands

Telegram introduced a separate method setMyCommands which allows you to set commands via API directly from your code.

{
  "commands": [
    {
      "command": "start",
      "description": "Start using bot"
    },
    {
      "command": "help",
      "description": "Display help"
    },
    {
      "command": "menu",
      "description": "Display menu"
    }
  ],
  "language_code": "en"
}

Moreover, it allows you to customize commands per language code with language_code parameter