🌙

setMyCommands / getMyCommands

setMyCommands / getMyCommands

Меню команд бота — то, что пользователь видит по кнопке / в чате.

setMyCommands

POST https://api.kodari.ru/msg/bot.php?method=setMyCommands
Authorization: Bearer bot_ВАШ_ТОКЕН
Content-Type: application/json
{
  "commands": [
    { "command": "start", "description": "Начать работу" },
    { "command": "help",  "description": "Помощь" }
  ]
}
ПараметрТипОбяз.Описание
commandsarrayМассив объектов {command, description}

Ведущий / в command отбрасывается автоматически. Элементы с пустой командой или пустым описанием игнорируются. Передача пустого массива очищает меню.

Ответ: { "ok": true, "result": true }

getMyCommands

GET https://api.kodari.ru/msg/bot.php?method=getMyCommands
Authorization: Bearer bot_ВАШ_ТОКЕН
{
  "ok": true,
  "result": [
    { "command": "start", "description": "Начать работу" },
    { "command": "help", "description": "Помощь" }
  ]
}

Если команды не заданы, возвращается пустой массив.

Ошибки

КодОписание
400commands не является массивом
401Неверный токен

pykodaribot

from pykodaribot import BotCommand

await bot.set_my_commands([
    BotCommand("start", "Начать работу"),
    BotCommand("help", "Помощь"),
])

for cmd in await bot.get_my_commands():
    print(f"/{cmd.command} — {cmd.description}")

Команды удобно выставлять один раз перед запуском поллинга:

async def main():
    await bot.set_my_commands([BotCommand("start", "Начать работу")])
    await dp.start_polling(bot)

asyncio.run(main())

Те же команды можно задать вручную через /mybots → «⚙️ Команды» у @BotFather.

59 просмотров