@belov.ai/sms-ru
v0.1.0
Published
Библиотека для отправки sms через sms.ru используя нативный nodejs fetch()
Readme
sms-ru
Библиотека для отправки SMS через сервис sms.ru с использованием нативного Node.js fetch API.
Требования
- Node.js >= 18.0.0
Установка
npm install @belov.ai/sms-ruИспользование
В коде
import { SMSRuClient } from '@belov.ai/sms-ru';
// Создаем клиент с API ключом
const client = new SMSRuClient('your-api-key');
// Простая отправка
const result = await client.sendSMS({
phones: '79001234567',
message: 'Hello World'
});
// Отправка нескольким получателям
const result = await client.sendSMS({
phones: ['79001234567', '79007654321'],
message: 'Hello World',
options: {
test: true, // Тестовый режим
from: 'Company', // Имя отправителя
translit: true, // Транслитерация
limit: 10 // Максимальная стоимость в рублях
}
});
// Обработка ошибок
try {
const result = await client.sendSMS({
phones: '79001234567',
message: 'Hello World'
});
console.log('Balance:', result.balance);
} catch (error) {
if (error instanceof SMSError) {
console.error('SMS Error:', error.message);
console.error('Status Code:', error.statusCode);
}
}
// Альтернативный способ через переменную окружения
import { sendSMS } from '@belov.ai/sms-ru';
// Требует установки SMSRU_API_ID
const result = await sendSMS({
phones: '79001234567',
message: 'Hello World'
});Через CLI
# Установите переменную окружения с вашим API ключом
export SMSRU_API_ID=your-api-key
# Отправка SMS
npx @belov.ai/sms-ru 79001234567 "Hello World"
# Тестовый режим (без реальной отправки)
npx @belov.ai/sms-ru 79001234567 "Test message" --test
# С указанием отправителя
npx @belov.ai/sms-ru 79001234567 "Hello" --from "Company"
# С транслитерацией
npx @belov.ai/sms-ru 79001234567 "Привет мир" --translitAPI
new SMSRuClient(apiId)
Создает новый экземпляр клиента для работы с SMS.RU API.
Параметры
apiId: string - Ваш API ключ от sms.ru
client.sendSMS(params)
Основная функция для отправки SMS.
Параметры
phones: string | string[] - Номер телефона или массив номеровmessage: string - Текст сообщенияoptions: object (опционально)from: string - Имя отправителяtime: number - Unix timestamp для отложенной отправкиtranslit: boolean - Переводить ли сообщение в транслитtest: boolean - Тестовый режимpartner_id: string - ID партнераlimit: number - Максимальная стоимость в рублях
Возвращает
Promise - Результат отправки
Вспомогательные функции
getStatusDescription(code): Получает описание статуса по кодуgetStatusCategory(code): Получает категорию статусаisSuccessStatus(code): Проверяет, является ли статус успешнымisProcessingStatus(code): Проверяет, находится ли сообщение в обработкеisErrorStatus(code): Проверяет, является ли статус ошибочнымgetCodeByCategory(category): Получает все коды для указанной категорииisValidCode(code): Проверяет валидность кода статуса
Лицензия
MIT
