A few days ago I blogged about using RingCentral’s APIs to send a SMS message when your Netlify-based site builds (“Adding a SMS Alert for Netlify Builds with RingCentral”). I thought I’d follow it up with a related example - sending a SMS with form data. To be clear, this post isn’t too much different from the previous one, but I thought it was an interesting enough example to share.
Last year I blogged about using Netlify serverless functions for form submissions. In that post I detail the data sent to the serverless payload (since, ahem, Netlify still doesn’t document this). Based on that, here’s the code I used to take the form submission and send it as a SMS:
const SDK = require('@ringcentral/sdk').SDK; // used for sms RECIPIENT = process.env.SMS_RECIP; RINGCENTRAL_CLIENTID = process.env.RINGCENTRAL_CLIENTID; RINGCENTRAL_CLIENTSECRET = process.env.RINGCENTRAL_CLIENTSECRET; RINGCENTRAL_SERVER = process.env.RINGCENTRAL_SERVER; RINGCENTRAL_USERNAME = process.env.RINGCENTRAL_USERNAME; RINGCENTRAL_PASSWORD = process.env.RINGCENTRAL_PASSWORD; RINGCENTRAL_EXTENSION = process.env.RINGCENTRAL_EXTENSION; var rcsdk = new SDK({ server: RINGCENTRAL_SERVER, clientId: RINGCENTRAL_CLIENTID, clientSecret: RINGCENTRAL_CLIENTSECRET }); var platform = rcsdk.platform(); exports.handler = async (event, context) => { let payload = JSON.parse(event.body).payload; let name = payload.data.name; let email = payload.data.email; let comments = payload.data.comments; console.log(`name, ${name}, email, ${email}, comments, ${comments}`); const text = ` A form was sent by ${name} (email address of ${email}), with these comments: ${comments}`; await sendSMS(text); } async function sendSMS(text) { await platform.login({ username: RINGCENTRAL_USERNAME, password: RINGCENTRAL_PASSWORD, extension: RINGCENTRAL_EXTENSION }); let resp = await platform.post('/restapi/v1.0/account/~/extension/~/sms', { from: {'phoneNumber': RINGCENTRAL_USERNAME}, to: [{'phoneNumber': RECIPIENT}], text: text }); let data = await resp.json(); return data; }
Basically - I create a formatted string and pass it to a function to handle sending the SMS. The result is much like my previous example:
As a reminder, that text watermark in front would not be there in a production-released RingCentral application.
Top comments (0)