Skip to content

Latest commit

 

History

History
133 lines (108 loc) · 6.5 KB

README.md

File metadata and controls

133 lines (108 loc) · 6.5 KB

Пример

var smsc = require('node-smsc')({
    login: 'login',
    password: '5f4dcc3b5aa765d61d8327deb882cf99',
    hashed: true,
})

smsc.send({
    phones: '79XXXXXXXXX',
    mes: 'Hello from node-smsc!',
})

Для дополнительных примеров использования обратитесь к тестам.

API

###initSmsc

function initSmsc (options) - непосредственно функция, возвращаемая модулем. Принимает необязательный параметр options.

####options

  • login - логин пользователя smsc
  • psw - пароль пользователя smsc
  • password - алиас для psw
  • hashed - флаг, указывающий, что передан уже захешированный пароль
  • request - опция, позволяющая указать путь к API, либо же объект с теми же ключами, что и ожидаемые функцией request модуля http или https, значение по умолчанию https://smsc.ru/sys/.
  • apiCalls - объект, позволяет определить пользовательские методы апи, или переопределить встроенные. Ключи - названия методов, значение - функция, имеющая ту же структуру, что и встроенные.

Возвращает объект, ключами которого являются названия роутов API:

  • send
  • jobs
  • status
  • balance
  • phones
  • users
  • info
  • get
  • get_mnp
  • receive_phones
  • senders

Значениями ключей являются функции, с учетом некоторого переопределенного поведения и параметров, обладающие следующим общим интерфейсом:

function apiCall (query, options, cb)

  • query - параметры, принимаемые и описываемые API
  • options - опции
    • options.files - массив объектов с полями field, value, options. Значения полей используются для параметризации метода append модуля form-data. Если это поле указано, поле requestBodyStream игнорируется.
    • options.requestBodyStream - указывает Readable stream, используемый для наполнения тела запроса
    • options.stream - флаг, указывающий, что следует вернуть не обработанный ответ API, а поток ответа
    • options.responseParser - объект с методом parse, принимающий два аргумента - utf8 строку ответа и дополнительные опции
    • options.responseParserOptions - дополнительные опции для метода parse responseParser
    • options.request - переопределение опций запроса (опции, которые принимает метод request модуля http или https)
  • cb - необязательный коллбэк, если не передан, Promise возвращается

###SmscApiError

SmscApiError (message, response) - Класс-наследник класса Error. Экземпляры этого класса могут передаваться первым параметром в коллбеке или rejection handler промиса при выполнении вызова API.

Отличия от провайдера

  • Кодировка по умолчанию - utf-8
  • В случаях, когда провайдер возвращает строку OK, методы модуля возвращают {result: 'OK'}.

Тесты

Перед запуском тестов следует включить режим тестирования в личном кабинете, иначе запуск тестов может привести к отправке настоящих смс и, как следствие, снятию средств со счета.

Тесты требуют предварительной настройки. Для этих целей служит файл конфигурации test/config.json, который необходимо предварительно создать.

Пример структуры конфигурационного файла:

{
    "init": {
        "login": "<LOGIN>",
        "password": "<PASSWORD>",
        "hashed": true
    },
    "phone": "79XXXXXXXXX",
    "email": "a@b.c",
    "sublogin": "sublogin",
    "subpassword": "subpassword"
}

#####Описание полей:

  • init - формат поля полностью соответствует формату опций, принимаемых модулем (функцией initSmsc)
  • phone - контроллируемый вами номер телефона. В случае, если вы забыли включить режим тестирования в личном кабинете, именно на этот номер посыпятся сообщения.
  • email - контроллируемый вами адрес электронной почты. Для отправки сообщений электронной почты предварительлно придется зарегистрировать ваш адрес электронной почты в личном кабинете. Тестовый режим не действует на сообщения электонной почты, они отправляются по-настоящему даже при включенном тестовом режиме. По этой причине соответствующие тесты выключены на уровне кода теста.
  • sublogin - желаемый тестовый логин субклиента. Все тесты на управление субклиентами выключены, из-за невозможности программной очистки результатов тестов, ввиду отсутствия соответствующей поддержки со стороны API.
  • subpassword - соответствующий субклиенту пароль