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": "Помощь" }
]
}
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
commands | array | ✓ | Массив объектов {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": "Помощь" }
]
}
Если команды не заданы, возвращается пустой массив.
Ошибки
| Код | Описание |
|---|---|
| 400 | commands не является массивом |
| 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 просмотров