Como enviar SMS a partir de C/C++

A maneira mais simples de enviar SMS a partir de C/C++ é 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.

Código C/C++ para enviar SMS para celular

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

SendSms.cpp
#include <iostream>
#include <string>
#include "Ozeki.Libs.Rest.h"

using namespace std;

int main()
{
	//Função para criar um identificador único para cada mensagem
    srand((unsigned)time(0));

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

	Message msg;
	msg.ToAddress = "+36201111111";
	msg.Text = "Olá mundo!";

	MessageApi api(configuration);

	auto result = api.Send(msg);

	cout << result << endl;

	return 0;
}
	

Como usar o exemplo de SMS em C/C++:

Este exemplo de SMS em C/C++ pode ser utilizado em qualquer aplicação C ou C++. Para utilizá-lo, você deve adicionar a DLL Ozeki.Libs.Rest como referência ao seu projeto. Após adicionar a referência ao projeto, você deve incluir a diretiva using Ozeki.Libs.Rest; na seção de cabeçalho do seu código-fonte C/C++. Isso permitirá que você utilize as classes fornecidas pela biblioteca Ozeki.Libs.Rest. Você pode usar a classe Message para criar o SMS. Você 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 wireless ou pela Internet.

como enviar sms a partir de ccpp
Figura 1 - Como enviar SMS a partir de C/C++

Baixar SendSms.cpp

O código-fonte explicado neste artigo pode ser baixado, utilizado e modificado gratuitamente.
Download: SendSms.cpp.zip (2.97Mb)

O que há no arquivo SendSms.cpp.zip?

O arquivo SendSms.cpp.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á o projeto SendSms no zip, que contém o código de exemplo para mostrar como enviar um SMS. Este código de exemplo está listado abaixo.

Figura 2 - O que há dentro de SendSms.cpp.zip

Como enviar SMS a partir de C/C++ (Passos simples)

Para enviar SMS a partir de C/C++:

  1. Instale um usuário de API HTTP
  2. Ative "Log communication events" na aba Advanced
  3. Configure o Visual Studio
  4. Baixe e extraia o arquivo SendSms.cpp.zip
  5. Abra o arquivo sendsms.sln no Visual Studio
  6. Inicie o aplicativo Ozeki SMS Gateway
  7. Execute o código C++ SendSMS.cpp no Visual Studio
  8. Verifique os logs para confirmar se o SMS foi enviado
Instale o Ozeki SMS Gateway e crie um usuário de API HTTP

Para poder enviar SMS a partir de C/C++, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código C/C++ no Visual Studio. 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 a sua conexão com a rede móvel está funcionando. O passo final para preparar o 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 configurar o ambiente, você pode executar o seu código C/C++.

URL da API HTTP para enviar SMS a partir de C/C++

Para enviar SMS a partir de C/C++, seu código C/C++ 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 C/C++ 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
	
Autenticação HTTP para enviar SMS a partir de C/C++

Para autenticar o cliente de SMS em C/C++, 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 C/C++, você pode usar o seguinte código para fazer essa codificação:

string usernamePassword = username + ":" + password;
string usernamePasswordEncoded = base64::encode(usernamePassword);
return "Basic " + usernamePasswordEncoded;
	

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 C/C++

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

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

Solicitação HTTP para enviar SMS a partir de C/C++

Para enviar o SMS, sua aplicação em C/C++ enviará uma solicitação HTTP semelhante à mostrada abaixo. Observe que esta solicitaçã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
Content-Length: 320
Content-Type: application/json
Accept: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509

{
	"messages":	[
		{
			"create_date":	"2021-06-29T07:55:54",
			"message_id":	"hbfc030d-68b7-a1i0-6e96-6jgkqml6rnt9",
			"submit_delivery_requested":	true,
			"submit_report_requested":	true,
			"submit_view_requested":	true,
			"text":	"Hello world!",
			"time_to_send":	"2021-06-29T07:55:54",
			"to_address":	"+36201111111",
			"valid_until":	"2021-07-06T07:55:54"
		}
	]
}
	

Resposta HTTP recebida pelo exemplo de SMS em C/C++

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

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Mon, 28 Jun 2021 16:58:02 GMT
Server: 10/10.3.123
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": "hbfc030d-68b7-a1i0-6e96-6jgkqml6rnt9",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-06-29 07:55:54",
	      "valid_until": "2021-07-06 07:55:54",
	      "time_to_send": "2021-06-29 07:55:54",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Conecte seu gateway SMS à rede móvel e crie uma conta de usuário HTTP API (Tutorial em vídeo)

Assumimos que você já instalou o Ozeki SMS Gateway e conectou-o à rede móvel. Para poder enviar SMS para um telefone móvel a partir de C#, você precisa configurar uma conta de usuário HTTP API no Ozeki SMS Gateway. Neste vídeo, vamos mostrar como fazer isso. O vídeo começará com a adição de um novo usuário e terminará com a API HTTP funcionando. Você também aprenderá a alterar o nível de log da API. Este vídeo de 30 segundos é fácil de seguir e detalhado, além disso, estamos usando o Ozeki SMS Gateway que oferece uma interface intuitiva. Você não terá problemas para seguir o tutorial.

Vídeo 1 - Como configurar uma conta de usuário HTTP API (Tutorial em vídeo)

Como enviar SMS a partir de C/C++ usando a API SMS em C/C++ (Tutorial em vídeo)

Este vídeo mostra como baixar o arquivo SendSms.cpp.zip desta página e como extrair seu conteúdo no Visual Studio. Se assistir ao vídeo, você notará que o conteúdo do zip SendSms.cpp é colocado na área de trabalho do Windows. Você também verá que clicamos duas vezes no arquivo de solução sendsms.sln para abrir a solução. O Visual Studio mostrará alguns avisos porque o arquivo vem da web. Basta clicar em OK para ignorar esses avisos.

Vídeo 2 - Como baixar e executar o projeto de exemplo (Tutorial em vídeo)

Exemplo de SMS em C/C++: SendSms.sln

O código de exemplo abaixo faz parte da Solução do Visual Studio SendSms.sln. Uma solução do Visual Studio pode conter vários projetos e vários arquivos. Nesta solução há apenas um projeto: SendSms.vcxproj, e um arquivo: SendSms.cpp.

Figura 3 - SendSms.sln

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

Depois que o SMS for enviado, é 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. O vídeo começará com o Ozeki SMS Gateway aberto e terminará com o menu Eventos. Você aprenderá onde clicar e onde procurar o log do usuário HTTP. O vídeo de 34 segundos é detalhado, mas muito fácil de entender. Você não se perderá na interface, pois o Ozeki SMS Gateway oferece uma interface muito intuitiva.

Vídeo 3 - Como verificar se o SMS foi aceito pelo usuário HTTP (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 registro nos logs na configuração da conexão antes de enviar a mensagem para visualizá-los. Se o registro estiver ativado, você verá o número de telefone e o texto da mensagem que enviou.

Vídeo 4 - Como testar se a solicitação foi aceita pelo cliente SMPP (Tutorial em vídeo)

Receber um SMS no Android

Neste vídeo, você verá o processo de recebimento de uma mensagem SMS no Android. O vídeo de 18 segundos começará com uma tela inicial comum do Android e mostrará a notificação em caso de mensagem recebida. Você também aprenderá como abrir o aplicativo Mensagens, onde pode obter mais informações sobre a mensagem e respondê-la. O processo é fácil de entender, e o vídeo mostra tudo em detalhes.

Vídeo 5 - Mensagem SMS recebida no telefone móvel (Tutorial em vídeo)

Resumindo

Este artigo foi escrito para ensinar como enviar SMS a partir de C/C++ usando o usuário HTTP API do Ozeki SMS Gateway. A conexão HTTP no Ozeki SMS Gateway oferece uma conexão muito confiável e velocidade incrível para ajudar seu negócio a funcionar sem problemas. Essa solução pode tornar sua organização mais eficiente, pois permite enviar mensagens SMS importantes de forma rápida e fácil através de sua aplicação em C/C++.

Há muitos outros artigos para ajudá-lo, então continue lendo. Avance para o tutorial Como enviar múltiplos SMS a partir de C/C++ e aprenda mais.

Comece a usar o Ozeki SMS Gateway agora! Faça o download no site da Ozeki.

More information