📨 Send single, bulk and bulk individual SMS and MMS with node-libcurl using the EZTexting REST API.
🔀 Requests are being send async via the libcurl Multi and Easy handler.
ℹ️ Messages are being sent and request responses are logged. Callback functions can be passed on.
Create a .env
file in your root folder and add 3 variables USR
, PWD
, and CRT_PATH
:
USR=eztexting_user
PWD=eztexting_pa$$word
CRT_PATH=path/to/certificate/cert.pem
Dotenv : The worldwide standard for securing environment variables
npm i @types/node eslint ts-node typescript --save-dev
I personally like to code TypeScript with nodemon
nodemon is a tool that helps develop Node.js based applications by automatically restarting the node application when file changes in the directory are detected.
Install: npm i nodemon --save-dev
Script: tsc --project tsconfig.json
import { Messages } from 'eztexting-node'
import { Message, ResponseFormat } from 'eztexting-node'
const format: ResponseFormat = 'json';
const singleMessage: Message = {
PhoneNumbers: '2057404127',
Message: 'Single message',
StampToSend: '2022-10-10 16:15'
};
new Messages(format).sendMessage(singleMessage, callbackFn)
import { Messages } from 'eztexting-node'
import { Message, ResponseFormat } from 'eztexting-node'
const format: ResponseFormat = 'json';
const bulkMessages: Message = {
PhoneNumbers: ['2057404127', '205-740-4177'],
Subject: "1",
Message: "Bulk message"
};
new Messages(format).sendMessage(bulkMessages, 'callback')
import { Messages } from 'eztexting-node'
import { Message, ResponseFormat } from 'eztexting-node'
const format: ResponseFormat = 'json';
const Messages = new Messages(format)
const individualMessages: Message[] = [
{PhoneNumbers: "2057404127", Subject: "1",Message: "Individual message 1"},
{PhoneNumbers: "205-740-4177", Subject: "2",Message: "Individual message 2"},
{PhoneNumbers: "(205) 740-4181", Subject: "3",Message: "Individual message 3"}
];
individualMessages.forEach(async (message: Message, i: number) => {
messages.sendMessage(individualMessages, callback?)
});
import { QRCodeGenerator, OutputFormat, StyleOptions } from ".";
const qr = new QRCodeGenerator();
qr.generate("png", "Willie")
.then((buffer: Buffer) => {var base64 = buffer.toString("base64")})
.catch((err: Error) => console.error(err));
const style: StyleOptions = {"width":300,"height":300,"data":"https://qr-code-styling.com","dotsOptions":{"type":"extra-rounded","color":"#6a1a4c"}}
const qr = new QRCodeGenerator();
qr.generate("svg", '', style);
// Optional parameter ([filename, dir])
// If no filename is passed, the filename is the current unix timestamp
qr.save("StyleWebsite");
import { ResponseFormat } from 'eztexting-node'
const format: ResponseFormat = 'json';
const newMedia = new MediaFilesCreate(format);
const attendee: Attendee = {
PhoneNumber: '2057404127',
Name: 'Winnie Puh',
Barcode: 123456789
};
const mediaFileOptions = {filetype: 'png', url: 'https://url-of-png-file.png'}
newMedia.createMediaFile(attendee, mediaFileOptions, createMessageCallBackFn)
https://github.com/JCMais/node-libcurl/blob/develop/COMMON_ISSUES.md