В этой статье вы изучите как сделать свой Telegram bot на JavaScript, вы увидите что это очень просто.
Также у вас должен быть уже установлен Node.js, если вы не знаете как это сделать, то посмотрите эти статьи.
Регистрирование бота в Telegram:
Перед тем как разрабатывать бота, нужно получить токен для него, нужно найти бота BotFather, и отправить ему сообщение «/newbot».
После чего он вам предложат сделать имя бота которое будет отображаться в чате, следующее, имя которое будет использоваться пути или в ссылке к боту, после вам пришлют токен который вы будите использовать в разработке.
Там где замазано и есть токен.
Разработка бота:
Теперь перейдём к самой разработке, но перед этим нужно создать и подключить telegram bot api для js.
Сделаете папку где будете хранить файлы вашего бота откройте её в терминале и выполните эту команду.
1 | npm init -y |
У вас должна появится папка «package.json», также выполните ещё одну команду.
1 | npm install --save --save-exact node-telegram-bot-api |
После всех действий, у вас примерно так должен выгладить файл «package.json».
Теперь создайте файл «index.js», в нём будет весь код, для начала напишем просто приветствие.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Подключаем библиотеку для создания бота let TelegramBot = require('node-telegram-bot-api'); // Создаём переменную для токина let token = 'Ваш токен'; // Создаём объект бота let bot = new TelegramBot(token, { polling: true }); // Отслеживаем что пользователь зашёл к боту bot.on('message', (msg) => { // Получаем индитенфикатор пользователя const chatId = msg.chat.id; // Отправляем пользователю сообщение bot.sendMessage(chatId, 'Добрый день новый пользователь'); } |
Давайте разберём этот код, в начале мы подключаем библиотеку для работы с ботом, потом создаём переменную для токина и дальше создаём объект бота.
Начинаем отслеживать, заходит ли пользователь к боту, если есть такой, то получаем его индентифекатор и отправляем ему сообщение, вот что должно появится.
Как то так всё должно работать, но это ещё не всё, что нужно знать про создание ботов, теперь посмотрим как отправлять изображение и создавать кнопки.
Для начала после объявление объекта, создаём сами кнопки вот какой код вставляем.
1 2 3 4 5 6 7 8 9 10 11 12 13 | // Массив с кнопками const keyboard = [ [{ text: 'Хочу пить', callback_data: "1" }], [{ text: 'Хочу есть', callback_data: "2" }], ] // Настройки для отправки сообщения let options = { reply_markup: JSON.stringify({ // Добавляем наши кнопки inline_keyboard: keyboard, }) }; |
Тут самое интересное, это какие ключи используются для кнопок.
- text — Текст который будет использоваться в кнопке;
- callback_data — Значение которое будет возвращается при нажатие на кнопку;
После создаём массив с options
, в котором храним настройки для сообщение, в нашем случае хранит только кнопки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // Отслеживаем что пользователь зашёл к боту bot.on('message', (msg) => { // Получаем индитенфикатор пользователя const chatId = msg.chat.id; // Отправляем пользователю сообщение bot.sendMessage(chatId, 'Добрый день, чего хотите?', options); // Проверка зажатия кнопки bot.on('callback_query', (query) => { // Путь до кнопки let img = ''; // Проверка что нажата кнопка со значение один if (query.data === "1") { // Назначаем картинку img = 'calm-2315559_640.jpg'; // Текст для сообщения options['caption'] = "Вот вам вода, "; } // Проверка что нажата кнопка со значение два if (query.data === "2") { // Назначаем картинку img = 'pancakes-2020863_640.jpg'; // Текст для сообщения options['caption'] = "Вот вам еда, "; } // Добавляем текст для сообщения options['caption'] += "ещё что нибудь хотите?"; // Проверка сообщения if (img) { // Отправка фото bot.sendPhoto(chatId, img, options); } }); }); |
В начале тут также отслеживаем подключение пользователя и отправляем сообщение с кнопками, чего хотим.
Дальше внутри уже начинаем отслеживать данные которые отправляет нам пользователь, мы же смотрим нажатие кнопки и создаём переменную в которой будем хранить url картинки.
Делаем два условия, в котором проверяем какая кнопка нажата, зависимо от этого будет отправляться определённая картинка и текст сообщения, дальше дополняем этот текст, и проверяем, есть ли картинка, если да, то отправляем её.
Как видите всё работает, также что бы убедится в этом вы сможете скачать его.
Вывод:
В этой статье вы прочитали как сделать telegram bot на JavaScript, всё очень просто.