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.

Настройка разработки

  1. Сделайте форк репозитория

  2. Клонируйте форк: git clone https://github.com/YOUR_USERNAME/megalabs_sms.git

  3. Создайте ветку с фичей: git checkout -b feature/amazing-feature

  4. Внесите изменения и закоммитьте: git commit -m 'Add amazing feature'

  5. Запушьте ветку: git push origin feature/amazing-feature

  6. Откройте Pull Request

Пожалуйста, убедитесь, что ваш код:

  • Проходит все тесты: bundle exec rspec

📄 Лицензия

Проект распространяется по лицензии MIT — подробности в файле LICENSE.

📞 Поддержка

Если у вас есть вопросы или проблемы:

  1. Проверьте раздел Issues

  2. Создайте новый issue, если проблема ещё не описана

  3. Приложите максимум деталей (версия Ruby, ОС, текст ошибки)


Made with ❤️ by DementevVV