This is the Vonage Server Client SDK for Node.js used to wrap the authentication headers/signatures for use with 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.vonage.com.
npm install @vonage/server-client
yarn add @vonage/server-client
To create a client, you will need to pass in a @vonage/auth
object.
const { Auth } = require('@vonage/auth');
const { Client } = require('@vonage/server-client');
const vonageClient = new Client (new Auth({
apiKey: API_KEY,
apiSecret: API_SECRET,
applicationId: APP_ID,
privateKey: PRIVATE_KEY_PATH,
}),
options,
);
You will now be able to send requests using the client:
const response = await vonageClient.sendGetRequest('https://rest.nexmo.com/account/numbers')
The constructor for the client takes in two parameters credentials
and
options
. credentials
is either an Auth
or an object
containing the settings from AuthInterface
.
options
allows adjusting api endpoints and the request timeout.
restHost: string
(optional) - Allows overwriting the defaulthttps://rest.nexmo.com
.apiHost: string
(optional) - Allows overwriting the defaulthttps://api.nexmo.com
.videoHost: string
(optional) - Allows overwriting the defaulthttps://video.api.vonage.com
.timeout: int
(optional) - Set a custom timeout for requests to Vonage in milliseconds. Defaults to the standard for Node http requests, which is 120,000 ms.appendUserAgent: string
(optional) - Set a custom string to be added to theuser-agent
header for the request
When downloading files, the request needs to be built with proper security
headers set. Inside this package is the FileClient
which will handle the
request. You can download a file using the File Id or the FQURL.
const { Auth } = require('@vonage/auth');
const { FileClient } = require('@vonage/server-client');
const fileClient = new FileClient(new Auth({
apiKey: API_KEY,
apiSecret: API_SECRET,
applicationId: APP_ID,
privateKey: PRIVATE_KEY_PATH,
}),
options,
);
await fileClient.downloadFile('the-file-id-or-url', '/paht/to/save');
Run:
npm run test