Como agendar um SMS em Node.js
A maneira mais simples de enviar SMS a partir do Node.Js é usar a API HTTP/Rest de SMS integrada do Ozeki SMS Gateway. Ao usar esta API, você enviará mensagens SMS fazendo uma requisição HTTP Post para o gateway de SMS. A requisição HTTP Post conterá uma mensagem formatada em JSON. O gateway de SMS enviará este SMS para o telefone do destinatário e retornará uma resposta HTTP 200 OK para sua requisição.
O exemplo de código JavaScript para SMS abaixo demonstra como você pode enviar SMS usando a API HTTP Rest de SMS do Ozeki SMS Gateway com a biblioteca JavaScript Ozeki.Libs.Rest. Esta biblioteca é fornecida gratuitamente, e você pode usá-la e modificá-la em qualquer um de seus projetos.
SendScheduledSms.mjsimport { 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 msg = new Message(); msg.ToAddress = "+36201111111"; msg.Text = "Olá mundo!"; msg.TimeToSend = new Date(Date.UTC(2021, 5, 21, 14, 55, 0)); var api = new MessageApi(configuration); const result = await api.Send(msg); console.log(result.toString());
Como usar o exemplo de SMS em JavaScript:
Você pode usar a classe Message para criar o SMS e 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 wireless ou pela Internet.
Baixar SendScheduledSms.js
O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: SendScheduledSms.js.zip (4.46Kb)
O arquivo SendScheduledSms.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 SendScheduledSms.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.
Este projeto tem dependências, então antes de começar você precisa instalar o pacote node-fetch com o seguinte comando:
npm install node-fetch
Para enviar um SMS agendado a partir do Node.Js:
- Instale o Ozeki SMS Gateway
- Conecte o Ozeki SMS Gateway à rede móvel
- Envie um SMS de teste a partir da interface gráfica do Ozeki
- Crie um usuário de API HTTP para SMS
- Apache NetBeans
- Baixe o projeto de exemplo acima
- Crie o SMS criando um novo objeto Message
- Crie uma API para enviar sua mensagem
- Use o método Send para enviar sua mensagem
- Leia a mensagem de resposta no console
- Verifique os logs no gateway de SMS
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 em 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 para SMS. Crie um usuário com o nome "http_user" e senha "qwe123" para que o exemplo funcione 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.JsPara 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 JavaScript de SMS 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
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 usado é: base64(nome de usuário+":"+senha). Em JavaScript, você pode usar o seguinte código para fazer essa 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: 319 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": "7f9016d5-1e23-d85d-b425-30a435af529e", "to_address": "+36201111111", "text": "Hello world!", "create_date": "2021-06-14T10:16:21", "vaild_date": "2021-06-21T10:16:21", "time_to_send": "2021-06-14T10:20:00", "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": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "7f9016d5-1e23-d85d-b425-30a435af529e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-06-14 10:16:21", "valid_until": "2021-06-21 10:16:21", "time_to_send": "2021-06-14 10:20:00", "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 SendScheduledSms.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.
Exemplo de SMS em Node.Js: SendScheduledSms.mjs (no Notepad)
Na Figura 3, você pode ver o código-fonte do projeto SendScheduledSMS, aberto no Notepad. Você pode usá-lo para editar o código se estiver familiarizado com a linguagem de programação Node.js. Altere os valores das variáveis para enviar uma mensagem personalizada para um endereço personalizado.
Exemplo de SMS em Node.Js: SendScheduledSms.mjs (no Visual Studio Code)
Se você deseja usar uma IDE com colorização de código, extensões e documentação útil, use o Visual Studio Code (Figura 4). É uma IDE gratuita que ajudará você a criar programas melhores. Se você estiver familiarizado com a linguagem de programação Node.js, sinta-se à vontade para ajustar os valores das variáveis para enviar uma mensagem personalizada para um endereço personalizado.
Como verificar se o SMS foi aceito pelo usuário HTTP
Depois que o SMS for submetido, é uma boa ideia verificar seu gateway SMS, para ver 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.
Como verificar se o SMS foi enviado para a rede móvel
O passo final para verificar o procedimento é dar uma olhada nos logs da conexão com a rede móvel. Você pode precisar ativar o registro na configuração da conexão antes de enviar a mensagem para ver os logs. Se o registro estiver ativado, você verá o número de telefone e o texto da mensagem que você enviou.
Conclusão
A principal função deste artigo foi mostrar como enviar mensagens SMS agendadas a partir do Node.js usando o usuário HTTP do Ozeki SMS Gateway. Se você seguiu os passos com atenção, deve conseguir agendar mensagens SMS facilmente com seu programa em Node.js. Para compartilhar informações de forma mais eficaz, é preciso dar muita ênfase ao timing, pois isso pode manter o tráfego de mensagens equilibrado e promover uma comunicação mais suave.
Continue lendo os guias no site da Ozeki para obter mais informações sobre como desenvolver seu sistema de mensagens. Encontre outros tutoriais de Node.js, como Como receber um SMS em Node.js e muito mais.
Baixe o Ozeki SMS Gateway agora e comece a trabalhar!
More information
- Enviar SMS em Node.js com a API REST HTTP (exemplo de código)
- Enviar múltiplos SMS em Node.js com a API REST HTTP (exemplo de código)
- Agendar SMS em Node.js com a API REST HTTP (exemplo de código)
- Receber SMS em Node.js com a API REST HTTP (exemplo de código)
- Excluir SMS em Node.js com a API REST HTTP (exemplo de código)
- Github: API de SMS em Node.js
- Tutorial de Node.js: Olá, mundo