76

Команды в телеграм ботах

Снова привет)

В ботах часто используются команды вида “/command”, которые провоцируют бота на то или иное действие.

Кто уже создавал ботов мог видеть их в @botfather.

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Давайте разберемся как создать этот список команд и присвоить каждой ту или иную функцию.


С созданием списка команд все довольно просто, это реализуется непосредственно в настройках бота через @BotFather:


1) Вводим команду /mybots

2) Видим список наших ботов

3) Выбираем тот бот, которому присвоим список команд

4) Кликаем Edit Bot

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

5) Кликаем Edit Commands

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Далее, следуя формату, отправляем список команд, например:

getkeyboard - получить клавиатуру

save - сохранить

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Следим, что нам отвечает отец ботов. Видим сообщение Success - мы молодцы! Идем дальше.


Теперь если мы введем “/” в чате с нашим ботом, то он предложит список команд. Проверяем, что список есть:

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Добавим логику нашим командам


Как уже видно из описания команд, я хочу отправить в чат клавиатуру.

Создам новую ГТ и перейду к написанию скрипта

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Назову файл doPost, здесь будет только эта функция

Команды в телеграм ботах Telegram, Telegram бот, Бот, Чат-бот, Bots, Google Таблицы, Javascript, Длиннопост

Добавлю следующий скрипт:


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)

- Библиотека


Дабы не перегружать дорогого читателя инфой, остановлюсь здесь)

Как всегда жду фидбека и вопросиков ^^ Всегда рады пообщаться!

MS, Libreoffice & Google docs

621 пост14.2K подписчика

Добавить пост

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

Подробнее