0.0
The project is in a healthy, maintained state
This gem provides a simple interface to send SMS using the Megalabs A2P API.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 0
>= 0
 Project Readme

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