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 celularO 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.
O código-fonte explicado neste artigo pode ser baixado, utilizado e modificado gratuitamente.
Download: SendSms.cpp.zip (2.97Mb)
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.
Para enviar SMS a partir de C/C++:
- Instale um usuário de API HTTP
- Ative "Log communication events" na aba Advanced
- Configure o Visual Studio
- Baixe e extraia o arquivo SendSms.cpp.zip
- Abra o arquivo sendsms.sln no Visual Studio
- Inicie o aplicativo Ozeki SMS Gateway
- Execute o código C++ SendSMS.cpp no Visual Studio
- Verifique os logs para confirmar se o SMS foi enviado
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
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.
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.
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.
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.
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.
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.
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
- C/Cpp enviar SMS com a API rest HTTP (exemplo de código)
- C/Cpp enviar múltiplos SMS com a API rest HTTP (exemplo de código)
- C/Cpp agendar SMS com a API rest HTTP (exemplo de código)
- C/Cpp receber SMS com a API rest HTTP (exemplo de código)
- C/Cpp deletar SMS com a API rest HTTP (exemplo de código)
- Como baixar a biblioteca mais recente da API SMS C/Cpp do Github