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