UNPKG

tnzapi

Version:

Node.js Library for TNZ Group REST API

691 lines (501 loc) 15.9 kB
# tnzapi ## Documentation The documentation for the TNZ API can be found [here][apidocs]. ## Versions `tnzapi` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details. ### Supported NodeJS Versions This library supports the following NodeJS implementations: * NodeJS v14 ## Installation Install from npm using [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm), a package manager for NodeJS. npm i tnzapi You may need to run the above commands with `sudo`. ## Getting Started Getting started with the TNZ API couldn't be easier. Create a `Client` and you're ready to go. ### API Credentials The `TNZAPI` needs your TNZ API credentials. You can either pass these directly to the constructor (see the code below) or via environment variables. ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ "AuthToken": "[Your Auth Token]" }); ... ``` ### Send Message Send SMS/Email/Voice/Fax through `tnzapi` library. #### Send SMS: ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ "AuthToken": "[Your Auth Token]" }); var callback = function(data) { console.log("Response: ",JSON.stringify(data, null, " ")); }; client.Messaging.SMS.SendMessage({ Reference: "Test", // Optional Message: "Test SMS", // SMS Message Destinations: [ // SMS Recipients { Recipient: "+64211111111" }, { Recipient: "+64222222222" } ] }).then(callback); // Send Message ``` #### Send Email: ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ "AuthToken": "[Your Auth Token]" }); var callback = function(data) { console.log("Response: ",JSON.stringify(data, null, " ")); }; client.Messaging.Email.SendMessage({ FromEmail: "from@test.com", // Optional : Sets From Email Address - leave blank to use your api username as email sender EmailSubject: "Test Email", // Email Subject MessagePlain: "Test Email Body", // Email Body Destinations: [ // Email Recipients { Recipient: "email.one@test.com" }, { Recipient: "email.two@test.com" } ] }).then(callback); // Send Message ``` #### Send Fax: ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ "AuthToken": "[Your Auth Token]" }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); }; client.Messaging.Fax.SendMessage({ Reference: "Test", // Optional Destinations: [ // Fax Numbers { Recipient:"+6491111111" }, { Recipient:"+6492222222" } ], Attachments: [ "D:/File1.pdf" ] }).then(callback); ``` #### Make Call - Text-to-Speech (TTS): ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ "AuthToken": "[Your Auth Token]" }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Messaging.TTS.SendMessage({ MessageToPeople: "Hi there!", // Message to play Destinations: [ // Recipients { Recipient: "+6491111111" }, { Recipient: "+6492222222" } ] }).then(callback); ``` #### Make Call - Upload MP3 / Wav File: ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ "AuthToken": "[Your Auth Token]" }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); }; client.Messaging.Voice.SendMessage({ Destinations: [ // Phone numbers to call { Recipient: "+6491111111" }, { Recipient: "+6492222222" } ], // Message to play - WAV format, 16-bit, 8000hz recommended VoiceFiles: [ { Name: "MessageToPeople", File: "D:/File1.wav" } ] }).then(callback); ``` ### Reports Retrieve your message status using `tnzapi` library. #### Reports - Get Message Status ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Reports.Status.Poll({ MessageID: "ID123456", // MessageID generated from system OR your message ID if specified }).then(callback); ``` #### Reports - Get SMS Reply ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); request.Poll(callback); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Reports.SMSReply.Poll({ MessageID: "ID123456", // MessageID generated from system OR your message ID if specified Page: 1 // Current location }).then(callback); ``` #### Reports - Get SMS Received List ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Reports.SMSReceived.Poll({ TimePeriod: 1440 // Return results from the last x minutes RecordsPerPage: 10, Page: 1 }).then(callback); ``` ### Actions Amend your message using `tnzapi` library. #### Actions - Abort Pending/Delayed Job ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Actions.Abort.SendRequest({ MessageID: "ID123456" // MessageID generated from system OR your message ID if specified }).then(callback); ``` #### Actions - Resubmit Failed Job ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Actions.Resubmit.SendRequest({ MessageID: "ID123456", // MessageID generated from system OR your message ID if specified }).then(callback); ``` #### Actions - Reschedule DELAYED Job ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Actions.Reschedule.SendRequest({ MessageID: "ID123456", // MessageID generated from system OR your message ID if specified SendTime: "2023-09-01T00:00" // New Date/Time }).then(callback); ``` #### Actions - Set Number of Operators on TTS/Voice Job ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Actions.Pacing.SendRequest({ MessageID: "ID123456", // MessageID generated from system OR your message ID if specified NumberOfOperators: 1 // No of operators }).then(callback); ``` ### Addressbook - Contacts Manage your contacts using `tnzapi` library. #### Contacts - List ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Contact.List({ RecordsPerPage: 10, Page: 1 }).then(callback); ``` #### Contacts - Detail ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Contact.Detail({ ContactID: "[Contact ID]" }).then(callback); ``` #### Contacts - Create ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Contact.Create({ Title: "Mr", Company: "TNZ Group", FirstName: "First", LastName: "Last", MobilePhone: "+6421000001", ViewBy: "Account", EditBy: "Account" }).then(callback); ``` #### Contacts - Update ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Contact.Update({ ContactID: "[Contact ID]", Attention: "Test Attention" Title: "Mr", Company: "TNZ Group", FirstName: "First", LastName: "Last", MobilePhone: "+64212223333", ViewPublic: "Account", EditPublid: "Account" }).then(callback); ``` #### Contacts - Delete ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Contact.Delete({ ContactID: "[Contact ID]" }).then(callback); ``` ### Addressbook - Contact Group Manage your contact group relationship using `tnzapi` library. #### Contact Group - List ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.ContactGroup.List({ ContactID: "[Contact ID]", RecordsPerPage: 10, Page: 1 }).then(callback); ``` #### Contact Group - Detail ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.ContactGroup.Detail({ ContactID: "[Contact ID]", GroupCode: "[Group Code]" }).then(callback); ``` #### Contact Group - Create ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.ContactGroup.Create({ ContactID: "[Contact ID]", GroupCode: "[Group Code]" }).then(callback); ``` #### Contact Group - Delete ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.ContactGroup.Delete({ ContactID: "[Contact ID]", GroupCode: "[Group Code]" }).then(callback); ``` ### Addressbook - Group Manage your group using `tnzapi` library. #### Group - List ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Group.List({ RecordsPerPage: 10, Page: 1 }).then(callback); ``` #### Group - Detail ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Group.Detail({ GroupCode: "[Group Code]" }).then(callback); ``` #### Group - Create ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Group.Create({ GroupName: "Test Group", ViewEditBy: "Account" }).then(callback); ``` #### Group - Update ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Group.Update({ GroupCode: "[Group Code]", GroupName: "Test Group 123", SubAccount: "Test", ViewEditBy: "Account" }).then(callback); ``` #### Group - Delete ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.Group.Delete({ GroupCode: "[Group Code]" }).then(callback); ``` ### Addressbook - Group Contact Manage your group contact relationship using `tnzapi` library. #### Group Contact - List ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.GroupContact.List({ GroupCode: "[Group Code]", RecordsPerPage: 10, Page: 1 }).then(callback); ``` #### Group Contact - Detail ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.ContactGroup.Create({ ContactID: "[Contact ID]", GroupCode: "[Group Code]" }).then(callback); ``` #### Group Contact - Create ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.GroupContact.Create({ GroupCode: "[Group Code]", ContactID: "[Contact ID]" }).then(callback); ``` #### Group Contact - Delete ```javascript const TNZAPI = require('tnzapi'); const client = new TNZAPI({ AuthToken: "[Your Auth Token]" // Auth Token }); var callback = function(data) { console.log("Response:",JSON.stringify(data, null, " ")); } client.Addressbook.GroupContact.Delete({ GroupCode: "[Group Code]", ContactID: "[Contact ID]" }).then(callback); ``` ### Getting help If you need help installing or using the library, please check the [TNZ Contact](https://www.tnz.co.nz/About/Contact/) if you don't find an answer to your question. [apidocs]: https://www.tnz.co.nz/Docs/NodeJSLib/