@rexfng/send
v1.14.0
Published
send email with restful api
Downloads
2
Readme
Description
wrapper of sendgrid and various messaging methods to send email, text messages, and make phone calls
Initialize
- define enviornment variable EMAIL_PASS by sendgrid api_key
- define enviornment variable TWILIO_SID and TWILIO_API_KEY by Twilio credentials
const Send = require('@rexfng/send')
const email = Send.helpers.email
Helper Methods
//returns helpers which can be used for sending emails. Method returns a promise.
const Send = require('@rexfng/send')
const email = Send.helpers.email
email({
from: "John<[email protected]>", // sender address
to: "Paul<[email protected]>", // list of receivers
subject: "Welcome Message", // Subject line
text: "Welcome to our service.", // plain text body
html: "<h1>Welcome to our service.</h1>" // html body
})
Router Methods
//returns routes which can be used with express ex.
const express = require('express')
app = express();
app.listen(3000);
const Send = require('@rexfng/send')
app.use('/email', Send.routes.email) //POST
app.use('/sms/send', Send.routes.sms.send) //POST
app.use('/sms/webhook', Send.routes.sms.webhook)
app.use('/twixml', Send.routes.twixml)
app.use('/voice', Send.routes.voice)
SMS Send Endpoint
The endpoint takes in JSON Body in the following format http://localhost:3000/sms/send POST
{
body: 'This is the ship that made the Kessel Run in fourteen parsecs?',
from: '+16468635472',
to: ['+16047123445', '+16041234456']
}
Response Code | CODE| MESSAGE | Details | |-----|----------------------|---| | 200 | SUCCESS | OK | | 500 | INTERNAL_ERROR | Server side error |
Response LINK
{
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"api_version": "2010-04-01",
"body": "This is the ship that made the Kessel Run in fourteen parsecs?",
"date_created": "Thu, 30 Jul 2015 20:12:31 +0000",
"date_sent": "Thu, 30 Jul 2015 20:12:33 +0000",
"date_updated": "Thu, 30 Jul 2015 20:12:33 +0000",
"direction": "outbound-api",
"error_code": null,
"error_message": null,
"from": "+15017122661",
"messaging_service_sid": null,
"num_media": "0",
"num_segments": "1",
"price": null,
"price_unit": null,
"sid": "MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "sent",
"subresource_uris": {
"media": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Media.json"
},
"to": "+15558675310",
"uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
}
SMS Webhook Endpoint
Provide Twilio this endpoint as a webhook and have responses logged in DB {"type": "twilio-webhook"}
http://localhost:3000/sms/webhook POST
Voice Endpoint
Provide Twilio this endpoint as a webhook and have responses logged in DB http://localhost:3000/voice POST
{
url: 'http://demo.twilio.com/docs/voice.xml',
to: '+123456789',
from: '+987654321'
}
Response TWIML
{
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"annotation": null,
"answered_by": null,
"api_version": "2010-04-01",
"caller_name": null,
"date_created": "Tue, 31 Aug 2010 20:36:28 +0000",
"date_updated": "Tue, 31 Aug 2010 20:36:44 +0000",
"direction": "inbound",
"duration": "15",
"end_time": "Tue, 31 Aug 2010 20:36:44 +0000",
"forwarded_from": "+141586753093",
"from": "+987654321",
"from_formatted": "+987654321",
"group_sid": null,
"parent_call_sid": null,
"phone_number_sid": "PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"price": "-0.03000",
"price_unit": "USD",
"sid": "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"start_time": "Tue, 31 Aug 2010 20:36:29 +0000",
"status": "completed",
"subresource_uris": {
"notifications": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Notifications.json",
"recordings": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings.json",
"feedback": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Feedback.json",
"feedback_summaries": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/FeedbackSummary.json",
"payments": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Payments.json"
},
"to": "+123456789",
"to_formatted": "+123456789",
"uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
}
Twixml Template Endpoint
Generate Twixml Endpoint with Mustache engine. If template is empty, it renders no content.
GET Query
?template={template_id}&key1=value1&key2=value2