Снова привет)
В ботах часто используются команды вида “/command”, которые провоцируют бота на то или иное действие.
Кто уже создавал ботов мог видеть их в @botfather.
Давайте разберемся как создать этот список команд и присвоить каждой ту или иную функцию.
С созданием списка команд все довольно просто, это реализуется непосредственно в настройках бота через @BotFather:
1) Вводим команду /mybots
2) Видим список наших ботов
3) Выбираем тот бот, которому присвоим список команд
4) Кликаем Edit Bot
Далее, следуя формату, отправляем список команд, например:
getkeyboard - получить клавиатуру
save - сохранить
Следим, что нам отвечает отец ботов. Видим сообщение Success - мы молодцы! Идем дальше.
Теперь если мы введем “/” в чате с нашим ботом, то он предложит список команд. Проверяем, что список есть:
Добавим логику нашим командам
Как уже видно из описания команд, я хочу отправить в чат клавиатуру.
Создам новую ГТ и перейду к написанию скрипта
Назову файл doPost, здесь будет только эта функция
Добавлю следующий скрипт:
function doPost(e)
{
let update = JSON.parse(e.postData.contents);
if (update.hasOwnProperty('message'))
{
let msg = update.message;
let chat_id = msg.chat.id;
let text = msg.text;
let msg_array = msg.text.split(" ");
let date = (msg.date/86400)+25569.125;
let user = msg.from.username;
if (text == "/getkeyboard") {
Demo.send_key("Галочки", chat_id, API, keyboard)
}
if (text == "/save") {
Demo.send("Клавиатура сохранена”, chat_id, API)
}
}
}
Все! Для каждой команды теперь добавлен функционал...
Хорошо, расскажу поподробнее))
doPost(e) - стандартная функция телеграма для обработки сообщений ботом. В нее мы записываем, что бот должен делать при получении той или иной команды.
Как видно из скрипта, команда - это простое текстовое сообщение. При заведении списка команд мы ограничиваем пользователя в свободном написании этих самых команд, тем самым упрощая всем жизнь.
Итак, если текст сообщения == “/getkeyboard”, мы отправляем в чат некую клавиатуру.
Если мы отправили боту команду “/save”, то он ответит нам сообщением “Клавиатура сохранена”.
Подробно функции send и send_key, а также библиотека Demo рассматривались в постах ранее. Вот ссылки:
- Создание бота (функция send)
- Клавиатуры (функция send_key)
- Библиотека
Дабы не перегружать дорогого читателя инфой, остановлюсь здесь)
Как всегда жду фидбека и вопросиков ^^ Всегда рады пообщаться!