sms-uslugi-api
Gem для взаимодействия с API сервиса sms-uslugi.
Установка
Запустить
gem install sms-uslugi-api
или добавить в Gemfile:
gem 'sms-uslugi-api'
Использование
sms = SmsUslugiApi.new 'login', 'password' # инициализация API
sms.info # получение информации об аккаунте, https://lcab.sms-uslugi.ru/send/smsApi#main/lcabApi/orgInfo
sms.get_phone_info '79000000000' # получение информации о номере, https://lcab.sms-uslugi.ru/send/smsApi#main/lcabApi/getPhoneInfo
sms.send 'message in utf8', '81112223333' # отправка SMS получателю, https://lcab.sms-uslugi.ru/send/smsApi#main/lcabApi/send
Методы
info
Возвращает хеш с информацией об аккаунте:
{
code: 1,
descr: "Операция завершена успешно",
account: "583.12",
ocode: "80009999999",
tarif: "Аванс::50",
price: "0.50",
source: ["systemTest", "Ded Moroz"],
receive_numbers: [
"79029999999",
"79028888888"
]
}
send(txt, to, options)
options
может содержать следующие параметры:
- idGroup
- source
- flash
- dateTimeSend
- onlydelivery
- use_alfasource
- discountID
Отправляет SMS с текстом txt
(должен быть в кодировке utf8) на номер to
. Остальные параметры идентичны аналогичным из официальной документации: https://lcab.sms-uslugi.ru/send/smsApi#main/lcabApi/send
Возвращает хеш с информацией об отправке:
{
code: 1,
descr: "Успешно обработано",
colsmsOfSending: 1,
priceOfSending: '0.50'
}
Тестирование
Для запуска тестов необходимо запустить команду rspec
в директории с проектом. После выполнения тестов будет сохранен отчёт о проценте покрытия кода тестами в директории coverage
.
Разработка
Pull-реквесты приветствуются. Чтобы добавить новую функциональность или изменить текущую, требуется:
- Форкнуть и склонировать репозиторий
- Написать тесты и код
- Проверить работоспособность
- Проверить покрытие кода тестами
- Закомитить и создать pull-реквест
Примечание
Так как сервис не поддерживает тестовый режим, а также для того, чтобы не оставлять реальных данных аккаунта, для написания тестов с использованием VCR необходимо сначала указать при инициализации SmsUslugiApi
в блоке before
реальные данные, а затем поправить руками в ./fixtures/vcr_cassettes/*.yml
URL запроса, чтобы он содержал в качестве логина и пароля demo:demo
, а также все необходимые данные.
PS. При смене информации для авторизации все старые тесты не пройдут, это нормальное поведение. После замены логина и пароля обратно на demo:demo
всё станет нормально.
Что делать, если не работает подстановка своего номера отправителя
Для того, чтобы использовать своё имя отправителя, требуется сначала зарегистрировать его в личном кабинете и дождаться подтверждения, после чего высылать СМС с использованием прямого канала:
@sms.send("teset message", PHONE_NUMBER, source: SOURCE, use_alfasource: 1)
# важен последний параметр (1), он отвечает за использование прямого канала
Copyright
Copyright (c) 2014-2016 Alexander Maslov, Oleg Bobok. See LICENSE.txt for further details.