JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 74
  • Score
    100M100P100Q71308F
  • License MIT

A NodeJS Wrapper for InfoBip

Package Exports

  • infobip-nodejs
  • infobip-nodejs/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (infobip-nodejs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Infobip

NPM Version Build Status

A NodeJS Wrapper for InfoBip

Overview

This project provides an easy-to-use object-oriented API to access endpoints delineated at https://www.infobip.com/docs/api

Installation

Install from the NPM Registry

  npm i --save infobip-nodejs

Usage

let InfoBip = require('infobip-nodejs')

let APIKEY = '1IkXmSWOlE4y9Inhgyd6g5f2R7'
const environment = process.env.NODE_ENV
const isProduction = (environment === 'production')

const infobip = new InfoBip(APIKEY, isProduction, {
  authType:'basic',
  username:'user', // Infobip Username used for registration
  password:'*******', // Infobip Password used for registration
  encrypted:false,
  baseHost: 'okllaq.api.infobip.com'
})

/* 
  Send SMS to two mobile numbers  
  
  - NB: make sure the Sender ID is registred with infobip before use
*/
const promise = infobip.sendSMS({
  messages: [{
    from: "YourCompanyName", // Sender ID
    destinations: [
      { to: '+2348164422256' },  // MTN Numbers
      { to: '+2347039664638' }
    ],
    text: 'Dear Customer, Thanks for registering with our service.'
  }],
  bulkId: "BULK-ID-awq6545pOu7ye6" // Auto-generated with prefix: "BULK-ID-"
})

promise.then( response => {
 const { body } = response
 console.log('response body: ', body)
}).catch( error => {
  console.error(error)
})

API Resources

  • infobip.sendSMS()
  • infobip.sendSMSBinary()
  • infobip.sendVoice()

Mocking instance for Unit/Integration Tests

const APIKEY = "hJ5Ds2e49jk0UiLa8fq36Sw7Y"
const isProduction = false
const infobip = new InfoBip(APIKEY, isProduction, {
  authType:'basic',
  username:'user', // Infobip Username used for registration
  password:'*********', // Infobip Password used for registration
  encrypted:false,
  baseHost: 'okllaq.api.infobip.com'
});

// start mocking on instance (during a unit/integration test)
infobip.engageMock()

// calling a mocked method sendVoice()
infobip.sendVoice({
  from: "MyCompanyName", // Sender ID
  to: "+2349023465560", // Airtel Number
  language: "en",
  voice: {
    name: "Paul",
    gender: "male"
  }
  text: "Just Saying Hello"
});

// stop mocking on instance
infobip.disengageMock()

// It's also possible to swap out mocked methods
// with custom implementations
infobip.mockMacro('sendSMS', function (params) {
  return Promise.reject({
    messageId: "xxxxxxxxxxxxxxxxxxxxxxxxx"
  });
});

License

MIT

Credits

Contributing

See the CONTRIBUTING.md file for info