MegalabsSms
Простой и удобный гем для отправки SMS через A2P API от Megalabs (Мегафон). Создан для разработчиков, которые хотят быстро и эффективно интегрировать отправку SMS в свои Ruby-приложения.
Установка
Добавьте эту строку в Gemfile вашего приложения:
gem 'megalabs_sms'И затем выполните:
bundle installИли установите гем напрямую:
gem install megalabs_smsИспользование
Базовый пример
require 'megalabs_sms'
require 'logger'
# Создаем клиент
client = MegalabsSms::Client.new(
'ваш_логин',
'ваш_пароль',
logger: Logger.new($stdout) # Или, например: Rails.logger
)
# Отправляем SMS
client.send_sms(
'SenderName', # имя отправителя
'+79001234567', # номер получателя
'Привет! Это тестовое сообщение.' # текст сообщения
)Также можно использовать именованные аргументы:
client.send_sms(
from: 'SenderName',
to: '+79001234567',
message: 'Привет! Это тестовое сообщение.'
)Дополнительные возможности
Задержка между запросами
Если вам нужно добавить задержку между запросами (например, чтобы не превысить лимиты API):
client = MegalabsSms::Client.new(
'ваш_логин',
'ваш_пароль',
sleep_time: 1.0 # задержка в 1 секунду между запросами
)Таймауты
По умолчанию используются таймауты: open_timeout = 5, read_timeout = 10.
client = MegalabsSms::Client.new(
'ваш_логин',
'ваш_пароль',
open_timeout: 3,
read_timeout: 8
)Тестовый режим
Для тестирования можно использовать режим эмуляции:
# Эмуляция успешной отправки
client = MegalabsSms::Client.new(
'ваш_логин',
'ваш_пароль',
success_stub: true
)
# Эмуляция ошибки отправки
client = MegalabsSms::Client.new(
'ваш_логин',
'ваш_пароль',
error_stub: true
)🐛 Обработка ошибок
Гем автоматически обрабатывает различные ошибки и возвращает понятные сообщения:
- При отсутствии учетных данных
- При некорректных параметрах
from,to,message - При проблемах с сетью
- При ошибках API
- При проблемах с форматом данных
🤝 Contributing
Contributions приветствуются! Смело открывайте Pull Request.
Настройка разработки
- Сделайте форк репозитория
- Клонируйте форк:
git clone https://github.com/YOUR_USERNAME/megalabs_sms.git - Создайте ветку с фичей:
git checkout -b feature/amazing-feature - Внесите изменения и закоммитьте:
git commit -m 'Add amazing feature' - Запушьте ветку:
git push origin feature/amazing-feature - Откройте Pull Request
Пожалуйста, убедитесь, что ваш код:
- Проходит все тесты:
bundle exec rspec
📄 Лицензия
Проект распространяется по лицензии MIT — подробности в файле LICENSE.
📞 Поддержка
Если у вас есть вопросы или проблемы:
- Проверьте раздел Issues
- Создайте новый issue, если проблема ещё не описана
- Приложите максимум деталей (версия Ruby, ОС, текст ошибки)
Made with ❤️ by DementevVV