Всем привет! У платформы МТС Exolve есть сообщество, которое часто делится полезными гайдами от прокачки своих серверов до открытия ворот по SMS. Наиболее интересные и подробные решили размещать в этом хабе.
В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.
Что понадобится для реализации
-
API-ключ приложения в аккаунте разработчика. Инструкции о том, как создать приложение и найти его API-ключ, вы можете найти в статьях «Создание приложения» и «API-ключ приложения»
-
Номер Exolve для отправки SMS. Инструкцию о том, как купить номер, вы можете найти в статье «Покупка номера»
-
API-ключ Telegram бота. Создать своего бота и получить API-ключ можно в официальном боте Telegram @BotFather
-
Node.js и следующие библиотеки:
— dotenv для хранения переменных окружения
— node-telegram-bot-api для реализации Telegram бота
Шаги реализации
1. Устанавливаем NodeJS. Переходим на официальный сайт NodeJS, выбираем метод установки (пакетный менеджер, готовый инсталлятор или исходный код) и вашу операционную систему, чтобы получить подробную инструкцию по установке.
2. Cоздаем новый проект, выполнив в консоли команду:
-
npm init
3. Устанавливаем библиотеки dotenv и node-telegram-bot-api, выполнив следующие команды в консоле:
-
npm i -s dotenv
-
npm i -s node-telegram-bot-api
4. Создаем файл .env, где будем хранить переменные окружения (API-ключи от Exolve и Telegram, номер Exolve и номер, куда нужно пересылать сообщение из Telegram в SMS). Код env. файла:
API_KEY_BOT = <API ключ телеграм бота> EXOLVE_NUMBER = <номер Exolve> RECIEVER_NUMBER = <номер, куда пересылать сообщения из Telegram бота в SMS> API_KEY_EXOLVE = <API ключ от приложения в Exolve>
5. Создаем index.js файл и вставляем туда следующий код:
// Подключение переменных из файла .env require('dotenv').config(); // Подключение библиотеки для Telegram ботов const TelegramBot = require('node-telegram-bot-api'); // Точка подключения для отправки SMS через Exolve HTTP API const url = 'https://api.exolve.ru/messaging/v1/SendSMS'; const apiKeyExolve = process.env.API_KEY_EXOLVE; // API-ключ приложения в Exolve const exolveNumber = process.env.EXOLVE_NUMBER; // Купленный номер в Exolve const recieverNumber = process.env.RECIEVER_NUMBER; // Номер, куда пересылать сообщения из Telegram // Функция отправки SMS через SMS HTTP Exolve async function sendSMS(exolveNumber, recieverNumber, text) { // передача в функцию номера Exolve, номера получателя и текста SMS let response = await fetch(url, { method: 'POST', headers: { Authorization: 'Bearer ' + apiKeyExolve }, body: JSON.stringify({ number: exolveNumber, destination: recieverNumber, text: text, }), }); let result = await response.json(); console.log(result); } // Инициализация Telegram бота const bot = new TelegramBot(process.env.API_KEY_BOT, { polling: true, }); // Прослушка сообщений в боте bot.on('text', async (msg) => { // Отправка полученного в боте сообщения в SMS try { await sendSMS(exolveNumber, recieverNumber, msg.text); } catch (e) { console.error(e); } // Ответ на сообщение в боте await bot.sendMessage(msg.chat.id, 'Ваше сообщение перенаправлено в SMS'); });
6. Запускаем Telegram-бота командой node index.js
Всё, теперь каждое отправленное сообщение в вашего Telegram-бота будет автоматически отправляться в SMS на номер получателя, указанный в .env файле.
Спасибо за внимание! И следите за новыми публикациями сообщества на форуме Exolve.
По теме подключения SMS API рекомендуем также почитать недавние туториалы про интерактивную панель для отправки SMS и приём обратной связи от клиентов.
ссылка на оригинал статьи https://habr.com/ru/articles/860192/
Добавить комментарий