Мы собираем файлы cookie и применяемрекомендательные технологии

Пересылка полученных сообщений в Telegram боте в SMS - 544 - МТС Exolve

Пересылка полученных сообщений в Telegram боте в SMS

Всем привет! Хочу поделиться, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.

Что понадобится для реализации
- 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 файле.



Проект на GitHub.

Спасибо за внимание!

2
267
Открытая тема
0 баллов

Для того, чтобы оставлять комментарии, необходимо пройти авторизацию

Авторизоваться
Отличная работа!

Развернул у себя, и действительно все работает. Спасибо за участие  :)  
moderator
moderator
0 баллов
03 сентября 2024 в 10:48
Ссылки топ
kali
kali
0 баллов
03 сентября 2024 в 10:56