Skip to content

Instantly share code, notes, and snippets.

@ranjithkumar8352
Last active July 27, 2024 04:17
Show Gist options
  • Save ranjithkumar8352/56681a9bd5f2603bec7444ef71604ed2 to your computer and use it in GitHub Desktop.
Save ranjithkumar8352/56681a9bd5f2603bec7444ef71604ed2 to your computer and use it in GitHub Desktop.
Send TextLocal SMS using Node.js
//This code was posted for an article at https://codingislove.com/send-sms-developers/
const axios = require("axios");
const tlClient = axios.create({
baseURL: "https://api.textlocal.in/",
params: {
apiKey: "YOUR API KEY", //Text local api key
sender: "6 CHARACTER SENDER ID"
}
});
const smsClient = {
sendPartnerWelcomeMessage: user => {
if (user && user.phone && user.name) {
const params = new URLSearchParams();
params.append("numbers", [parseInt("91" + user.phone)]);
params.append(
"message",
`Hi ${user.name},
Welcome to iWheels, Download our app to get bookings from our customers with better pricing.
https://iwheels.co`
);
tlClient.post("/send", params);
}
},
sendVerificationMessage: user => {
if (user && user.phone) {
const params = new URLSearchParams();
params.append("numbers", [parseInt("91" + user.phone)]);
params.append(
"message",
`Your iWheels verification code is ${user.verifyCode}`
);
tlClient.post("/send", params);
}
}
};
module.exports = smsClient;
// Now import the client in any other file or wherever required and run these functions
// const smsClient = require("./smsClient");
// smsClient.sendVerificationMessage(user)
@ak708
Copy link

ak708 commented Jul 2, 2024

This works for typescript

import { serve } from "https://deno.land/std/http/server.ts";
import { encode } from "https://deno.land/std/encoding/base64.ts";

const sendSMS = async (apikey: string, numbers: string, sender: string, message: string) => {
const url = 'https://api.textlocal.in/send/?';
const params = new URLSearchParams({
apikey: apikey,
numbers: numbers,
sender: sender,
message: message,
});

const requestInit: RequestInit = {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: params.toString(),
};

const response = await fetch(url, requestInit);
const result = await response.text();
return result;
};

serve(async (req) => {
if (req.method === "POST") {
try {
const testapikey = Deno.env.get("TEXTLOCAL_API_KEY");
const testnumbers = "number";
const sendertest = "sender";
const messagetest = message;

       const result = await sendSMS(testapikey, testnumbers, sendertest, messagetest);
  return new Response(result, {
    headers: { "Content-Type": "application/json" },
    status: 200,
  });
} catch (error) {
  return new Response(JSON.stringify({ error: error.message }), {
    headers: { "Content-Type": "application/json" },
    status: 500,
  });
}

} else {
return new Response("Method Not Allowed", { status: 405 });
}
});

@splash404
Copy link

var url = 'https://api.textlocal.in/send/?apikey=<API_KEY>&numbers=&sender=TXTLCL&message=' + encodeURIComponent('OTP to login to app is 123456');
axios
.get(url)
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});

Thank you champ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment