Como enviar múltiplos SMS a partir do Node.js

A maneira simples de enviar SMS a partir do Node.Js é utilizar a API HTTP/Rest de SMS integrada do Ozeki SMS Gateway. Ao utilizar esta API, você enviará mensagens SMS através de uma requisição HTTP Post para o gateway de SMS. A requisição HTTP Post irá conter uma mensagem formatada em JSON. O gateway de SMS irá enviar este SMS para o telefone do destinatário e retornará uma resposta HTTP 200 OK para a sua requisição.

como enviar mensagens SMS usando node js
Figura 1 - Como enviar múltiplos SMS a partir do Node.Js

Código JavaScript para enviar SMS para celular

O exemplo de código JavaScript para SMS abaixo demonstra como você pode enviar SMS utilizando a API REST HTTP de SMS do Ozeki SMS Gateway com a biblioteca JavaScript Ozeki.Libs.Rest. Esta biblioteca é fornecida gratuitamente e você pode utilizá-la e modificá-la em qualquer um dos seus projetos.

SendMultipleSms.mjs
import { Configuration, Message, MessageApi } from './Ozeki.Libs.Rest.js';


var configuration = new  Configuration();
configuration.Username = "http_user";
configuration.Password = "qwe123";
configuration.ApiUrl = "http://127.0.0.1:9509/api";

var msg1 = new Message();
msg1.ToAddress = "+36201111111";
msg1.Text = "Olá mundo 1";

var msg2 = new Message();
msg2.ToAddress = "+36202222222";
msg2.Text = "Olá mundo 2";

var msg3 = new Message();
msg3.ToAddress = "+36203333333";
msg3.Text = "Olá mundo 3";

var messages = new Array();

messages.push(msg1);
messages.push(msg2);
messages.push(msg3);

var api = new MessageApi(configuration);

const result = await api.Send(messages);

console.log(result.toString());
	

Como usar o exemplo de SMS em JavaScript:

Você pode usar a classe Message para criar o SMS e pode usar a classe MessageApi para enviar o SMS para o gateway de SMS. O gateway de SMS encaminhará sua mensagem para a rede móvel através de uma conexão sem fio ou pela Internet.

Baixar SendMultipleSms.js

O código-fonte explicado neste artigo pode ser baixado, utilizado e modificado gratuitamente.
Download: SendMultipleSms.js.zip (3.62Kb)

O que está no arquivo SendMultipleSms.js.zip?

O arquivo SendMultipleSms.js.zip contém a biblioteca Ozeki.Libs.Rest, que fornece todas as ferramentas necessárias para enviar e receber mensagens SMS. Você também encontrará um arquivo SendMultipleSms.mjs no projeto, que contém o código de exemplo para mostrar como enviar um SMS. Este código de exemplo está listado abaixo.

exemplo de projeto para enviar múltiplos SMS com node js
Figura 2 - Diretório SendMultipleSms.js

Este projeto possui dependências, então antes de começar você deve instalar o pacote node-fetch com o seguinte comando:

npm install node-fetch
	

Código 1 - Comando para instalar o pacote node-fetch

. Como enviar SMS a partir do Node.Js (Passos rápidos)

Para enviar SMS a partir do Node.Js:

  1. Instale o Ozeki SMS Gateway
  2. Conecte o Ozeki SMS Gateway à rede móvel
  3. Envie um SMS de teste a partir da interface gráfica do Ozeki
  4. Crie um usuário de API HTTP de SMS
  5. Apache NetBeans
  6. Baixe o projeto de exemplo acima
  7. Crie o SMS criando um novo objeto Message
  8. Crie uma API para enviar sua mensagem
  9. Use o método Send para enviar sua mensagem
  10. Leia a mensagem de resposta no console
  11. Verifique os logs no gateway de SMS
Instale o Ozeki SMS Gateway e crie um usuário de API HTTP

Para poder enviar SMS a partir do Node.Js, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código JavaScript no Visual Studio Code ou qualquer outro editor de código. Após a instalação, o próximo passo é conectar o Ozeki SMS Gateway à rede móvel. Você pode enviar um SMS de teste a partir da interface gráfica do Ozeki para verificar se sua conexão com a rede móvel está funcionando. O passo final para preparar seu ambiente é criar um usuário de API HTTP de SMS. Crie um usuário com o nome "http_user" e senha "qwe123" para fazer o exemplo funcionar sem modificações.

Após a configuração do ambiente, você pode executar seu código JavaScript.

URL da API HTTP para enviar SMS a partir do Node.Js

Para enviar SMS a partir do Node.Js, seu JavaScript terá que fazer uma requisição HTTP para o gateway de SMS. A URL da API é mostrada abaixo. Observe que o endereço IP (127.0.0.1) deve ser substituído pelo endereço IP do seu gateway de SMS. Se o Ozeki SMS Gateway estiver instalado no mesmo computador onde o aplicativo de SMS em JavaScript está sendo executado, pode ser 127.0.0.1. Se estiver instalado em um computador diferente, deve ser o endereço IP desse computador.

http://127.0.0.1:9509/api?action=rest
	
Autenticação HTTP para enviar SMS a partir do JavaScript

Para autenticar o cliente de SMS em Node.Js, você precisa enviar o nome de usuário e senha em uma string codificada em base64 para o servidor em uma requisição HTTP. O formato utilizado é: base64(nome de usuário+":"+senha). Em JavaScript você pode usar o seguinte código para fazer esta codificação:

var usernamePassword = username + ":" + password;
return `Basic ${Base64.encode(usernamePassword)}`;
	

Por exemplo, se você codificar o nome de usuário 'http_user' e a senha 'qwe123', você obterá a seguinte string codificada em base64: aHR0cF91c2VyOnF3ZTEyMw==. Para enviar

Cabeçalho da requisição HTTP para enviar SMS a partir de JavaScript

Para enviar as mensagens SMS, você precisa incluir as seguintes linhas como cabeçalhos na requisição HTTP. Observe que incluímos um tipo de conteúdo e um cabeçalho de Autorização.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

Requisição HTTP para enviar SMS a partir de Node.Js

Para submeter o SMS, sua aplicação Node.Js enviará uma requisição HTTP semelhante à mostrada abaixo. Observe que esta requisição contém uma parte de cabeçalho HTTP e uma parte de corpo HTTP. O corpo HTTP é uma string de dados codificada em JSON. Ela contém o número do destinatário e o texto da mensagem.

POST /api?action=sendmsg HTTP/1.1
Connection: close
Content-Length: 932
Content-Type: application/json
Accept: */*
Accept-Encoding: gzip,deflate
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch)

{
	"messages":	[
		{
			"message_id":	"bda3e52a-6081-4c7e-954a-e3baf41d68bd",
			"to_address":	"+36201111111",
			"text":	"Hello world 1",
			"create_date":	"2021-06-14T09:45:52",
			"vaild_date":	"2021-06-21T09:45:52",
			"time_to_send":	"2021-06-14T09:45:52",
			"submit_report_requested":	true,
			"delivery_report_requested":	true,
			"view_report_requested":	true
		},
		{
			"message_id":	"50147a56-d453-50ba-b0ba-567c789cb539",
			"to_address":	"+36202222222",
			"text":	"Hello world 2",
			"create_date":	"2021-06-14T09:45:52",
			"vaild_date":	"2021-06-21T09:45:52",
			"time_to_send":	"2021-06-14T09:45:52",
			"submit_report_requested":	true,
			"delivery_report_requested":	true,
			"view_report_requested":	true
		},
		{
			"message_id":	"f05671e8-7664-d1c0-82da-0934464e2978",
			"to_address":	"+36203333333",
			"text":	"Hello world 3",
			"create_date":	"2021-06-14T09:45:52",
			"vaild_date":	"2021-06-21T09:45:52",
			"time_to_send":	"2021-06-14T09:45:52",
			"submit_report_requested":	true,
			"delivery_report_requested":	true,
			"view_report_requested":	true
		}
	]
}
	

Resposta HTTP recebida pelo exemplo de SMS em JavaScript

Assim que o gateway SMS receber esta requisição, ele gerará uma resposta HTTP. A resposta HTTP conterá um código de status, para indicar se a submissão do SMS foi bem-sucedida ou não. Ela também retornará uma estrutura codificada em JSON para fornecer detalhes úteis sobre a submissão da mensagem.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.120 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Mon, 14 Jun 2021 09:12:00 GMT
Server: 10/10.3.120
Transfer-Encoding: chunked
{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "Messages queued for delivery.",
	"data": {
	  "total_count": 3,
	  "success_count": 3,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "bda3e52a-6081-4c7e-954a-e3baf41d68bd",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-06-14 09:45:52",
	      "valid_until": "2021-06-21 09:45:52",
	      "time_to_send": "2021-06-14 09:45:52",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "50147a56-d453-50ba-b0ba-567c789cb539",
	      "from_station": "%",
	      "to_address": "+36202222222",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-06-14 09:45:52",
	      "valid_until": "2021-06-21 09:45:52",
	      "time_to_send": "2021-06-14 09:45:52",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "f05671e8-7664-d1c0-82da-0934464e2978",
	      "from_station": "%",
	      "to_address": "+36203333333",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-06-14 09:45:52",
	      "valid_until": "2021-06-21 09:45:52",
	      "time_to_send": "2021-06-14 09:45:52",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Como enviar SMS a partir de Node.Js usando a API de SMS (Tutorial em vídeo)

Este vídeo mostra como baixar e usar o projeto SendMultipleSms.js. Depois de adicionar os arquivos necessários ao seu projeto, você pode notar que há um arquivo chamado Ozeki.Lbis.Rest.js. Este é o arquivo que contém a MessageApi e tudo o que você precisa para enviar um SMS usando JavaScript.

Vídeo 1 - Como baixar Ozeki.Libs.Rest e configurar seu projeto (Tutorial em vídeo)

Exemplo de SMS em Node.Js: SendMultipleSms.mjs (no Notepad)

Nesta imagem (Figura 3), você pode encontrar o código-fonte do projeto, aberto em um bloco de notas. Você também pode editar em um bloco de notas. Se estiver familiarizado com Node.js, sinta-se à vontade para alterar as variáveis no código e enviar uma mensagem personalizada para um endereço de sua escolha.

exemplo em javascript para enviar múltiplos sms
Figura 3 - SendMultipleSms.mjs no Notepad

Se você está procurando uma maneira mais fácil de abrir e editar o código-fonte, experimente usar o Visual Studio Code (Figura 4). Ele oferece coloração de código, mais ajuda e auto-completação. É um IDE (Ambiente de Desenvolvimento Integrado) leve, de código aberto e gratuito.

exemplo de javascript para enviar múltiplos SMS
Figura 4 - SendMultipleSms.mjs no Visual Studio Code

Como verificar se o SMS foi aceito pelo usuário HTTP

Após o envio do SMS, é uma boa ideia verificar no seu gateway de SMS o que foi recebido. Você pode verificar o log abrindo os detalhes do usuário HTTP no console de gerenciamento do Ozeki SMS Gateway. O vídeo a seguir mostra o que procurar.

Vídeo 2 - Como enviar múltiplas mensagens SMS com o código JavaScript acima (Tutorial em vídeo)

Como verificar se o SMS foi enviado para a rede móvel

O passo final para verificar o procedimento é analisar os logs da conexão com a rede móvel. Pode ser necessário ativar o log na configuração da conexão antes de enviar a mensagem para visualizar os registros. Se o log estiver ativado, você verá o número de telefone e o texto da mensagem enviada.

Considerações finais

Este guia contém todas as informações essenciais para aprender a enviar múltiplas mensagens SMS de uma aplicação Node.js com o usuário HTTP do Ozeki SMS Gateway. Esta solução oferece uso versátil, pois a API de SMS Node.js também funciona com o Gateway de SMS para Android, permitindo o envio de SMS sem fio, o que você achará vantajoso. Usar este serviço torna sua mensageria mais eficiente e dinâmica, permitindo o envio de informações valiosas e notificações importantes para vários celulares de uma vez.

Você pode encontrar muitos outros artigos sobre as funcionalidades da API de SMS Node.js no site da Ozeki. Vá, aprenda mais agora, continue com Como agendar um SMS em Node.js.

Vamos trabalhar! Primeiro, baixe o Ozeki SMS Gateway!

More information