Библиотека для отправки 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'
});
# Установите переменную окружения с вашим 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 "Привет мир" --translit
Создает новый экземпляр клиента для работы с SMS.RU API.
apiId
: string - Ваш API ключ от sms.ru
Основная функция для отправки 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