Vonage Server SDK for Node.js
This is the Node.JS Server SDK for Vonage APIs. To use it you will need a Vonage account. Sign up for free at vonage.com.
For full API documentation refer to developer.nexmo.com.
Installation
With NPM
npm install @vonage/server-sdk
With Yarn
yarn add @vonage/server-sdk
Constructor
const Vonage = require('@vonage/server-sdk');
const vonage = new Vonage({
apiKey: API_KEY,
apiSecret: API_SECRET,
applicationId: APP_ID,
privateKey: PRIVATE_KEY_PATH,
signatureSecret: SIGNATURE_SECRET,
signatureMethod: SIGNATURE_METHOD
}, options);
apiKey
- API Key from Vonage API. IfapplicationId
andprivateKey
are present,apiKey
is optional.apiSecret
- API SECRET from Vonage API. IfapplicationId
andprivateKey
are present,apiSecret
is optional.applicationId
- (optional) The Vonage API Application ID to be used when creating JWTs.privateKey
- (optional) The Private Key to be used when creating JWTs. You can specify the key as any of the following:- A Buffer containing the file contents.
- A String containing the path to the key file on disk.
- A String containing the key itself.
signatureSecret
- (optional) API signature secret from Vonage API, used for signing SMS message requestssignatureMethod
- (optional) signature method matching the one you gave Vonage API, used for signing SMS message requests. Must be one of "md5hash", "md5", "sha1", "sha256", or "sha512"options
- (optional) Additional options for the constructor.
Options are:
{
// If true, log information to the console
debug: true|false,
// append info the the User-Agent sent to Nexmo
// e.g. pass 'my-app' for /nexmo-node/1.0.0/4.2.7/my-app
appendToUserAgent: string,
// Set a custom logger
logger: {
log: function() {level, args...}
info: function() {args...},
warn: function() {args...}
},
// Set a custom timeout for requests to Nexmo in milliseconds. Defaults to the standard for Node http requests, which is 120,000 ms.
timeout: integer,
// Set a custom host for requests instead of api.nexmo.com
apiHost: string,
// Set a custom host for requests instead of rest.nexmo.com
restHost: string
}
Callbacks
All methods expect a callback
function to be passed in, with a method signature of (error, response)
where:
error
- is an Error object if the API call returns an error, ornull
if the API call was successful.response
- is an Object, with the API response if the API call was successful, ornull
if there was an error.
Example:
callback = (error, response) => {
if (error) {
console.error(error)
}
if (response) {
console.log(response)
}
}
Testing
Run:
npm test
Or to continually watch and run tests as you change the code:
npm run test-watch
Examples
See the Vonage Node Quickstarts repo.
Supported APIs
The following is a list of Vonage APIs and whether the Node Server SDK provides support for them:
API | API Release Status | Supported? |
---|---|---|
Account API | General Availability | |
Alerts API | General Availability | |
Application API | General Availability | |
Audit API | Beta | |
Conversation API | Beta | |
Dispatch API | Beta | |
External Accounts API | Beta | |
Media API | Beta | |
Messages API | Beta | |
Number Insight API | General Availability | |
Number Management API | General Availability | |
Pricing API | General Availability | |
Redact API | Developer Preview | |
Reports API | Beta | |
SMS API | General Availability | |
Verify API | General Availability | |
Voice API | General Availability |