GyverLibs / FastBot

Многофункциональная быстрая библиотека для Телеграм бота на esp8266/esp32
MIT License
187 stars 32 forks source link

Как установить команды бота? #39

Closed andreich1980 closed 1 year ago

andreich1980 commented 1 year ago

Хочу программно определить для бота список команд.

Изучил Telegram bot API, попробовал отправить список команд с помощью метода sendCommand в виде json-массива:

  uint8 result = bot.sendCommand("/setMyCommands?commands=[{\"command\":\"status\",\"description\":\"Get+current+status\"}]");
  Serial.print("Setting bot commands: ");
  Serial.println(result);

Так же пробовал посылать данные после urlencode:

uint8 result = bot.sendCommand("/setMyCommands?commands=%5B%7B%22command%22%3A%22status%22%2C%22description%22%3A%22Get%20current%20status%22%7D%5D");

Выводит: Setting bot commands: 1

Похоже, что бот список команд не видит (не появляется кнопка "/", не подсказывает команды, когда вручную ввожу "/"). Где я ошибаюсь?

andreich1980 commented 1 year ago

Сорян, кажется, всё работает с urlencode, просто оменю команд обновилось не моментально, у меня просто не хватило терпения))

andreich1980 commented 1 year ago

UPD. На самом деле работает даже без urlencode, достаточно просто экранировать двойные кавычки.

  uint8 result = bot.sendCommand("/setMyCommands?commands=[{\"command\":\"status\",\"description\":\"Get current status\"}]");