Como enviar SMS a partir de C#
A maneira mais simples de enviar SMS a partir de C# é usar a API HTTP/Rest de SMS integrada do Ozeki SMS Gateway. Ao usar esta API, você enviará mensagens SMS através de uma solicitação HTTP Post para o gateway de SMS. A solicitação HTTP Post irá conter uma mensagem formatada em formato 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 solicitação. (Figura 1)
O exemplo de código C# para SMS abaixo demonstra como você pode enviar SMS usando a API HTTP Rest de SMS do Ozeki SMS Gateway com a biblioteca Ozeki.Libs.Rest em C#. Esta biblioteca é fornecida gratuitamente e você pode usá-la e modificá-la em qualquer um dos seus projetos.
SendSMS.csusing Ozeki.Libs.Rest; using System; namespace SendSms { class Program { static void Main(string[] args) { var configuration = new Configuration() { Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api" }; var msg = new Message() { ToAddress = "+36201111111", Text = "Olá, Mundo!" }; var api = new MessageApi(configuration); var result = api.Send(msg); Console.WriteLine(result); Console.ReadKey(); } } }
Como usar o exemplo de SMS em C#:
Este exemplo de SMS em C# pode ser usado em qualquer aplicação .NET ou .NET core. Para usá-lo, você deve adicionar a DLL Ozeki.Libs.Rest como referência ao seu projeto. Após adicionar a referência do projeto, você deve incluir a diretiva using Ozeki.Libs.Rest; na seção de cabeçalho do seu código-fonte C#. Isso permitirá que você use 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 sem fio ou pela Internet.
Baixar SendSMS.cs
O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: SendSms.cs.zip (33.3Kb)
O arquivo SendSms.cs.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)
Para enviar SMS a partir de 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.cs.zip
- Abra o arquivo SendSms.sln no Visual Studio
- Inicie o aplicativo Ozeki SMS Gateway
- Execute o código C# Program.cs no Visual Studio
- Verifique os logs para ver se o SMS foi enviado
Para poder enviar SMS a partir de 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# 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 seu código C#.
URL da API HTTP para enviar SMS a partir de C#Para enviar SMS a partir de C#, seu código C# terá que fazer uma solicitaçã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# 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#, você precisa enviar o nome de usuário e senha em uma string codificada em base64 para o servidor em uma solicitação HTTP. O formato usado é: base64(nome de usuário+":"+senha). Em C#, você pode usar o seguinte código para fazer essa codificação:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(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 solicitação HTTP para enviar SMS a partir de C#Para enviar as mensagens SMS, você precisa incluir as seguintes linhas como cabeçalhos na solicitaçã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==
Solicitação HTTP para enviar SMS a partir de C#
Para enviar o SMS, sua aplicação em 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 Connection: Keep-Alive Content-Length: 336 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c", "to_address": "+36201111111", "text": "Olá, Mundo!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
Resposta HTTP recebida pelo exemplo de SMS em 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.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 11:17:49 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Mensagens enfileiradas para entrega.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Olá, Mundo!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "submit_report_requested": true, "delivery_report_requested": true, "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
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.
Criar um novo usuário (Tutorial em vídeo)
Este vídeo mostra como configurar uma nova conta de usuário HTTP API. Ele começa com a página inicial do Ozeki SMS Gateway e termina com a aba de Eventos do novo usuário. O vídeo mostrará como criar e configurar seu novo usuário. O melhor deste vídeo é que ele tem apenas 30 segundos, mas contém todas as informações necessárias para criar um novo usuário HTTP API.
Como enviar SMS a partir de C# usando a API de SMS em C# (Tutorial em vídeo)
Este vídeo mostra como baixar o arquivo SendSms.cs.zip desta página e como baixar seu conteúdo no Visual Studio. Se assistir ao vídeo, você notará que o conteúdo do zip SendSms.cs é 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#: 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.csproj, e um arquivo: Program.cs.
Como verificar se o SMS foi aceito pelo usuário HTTP (Tutorial em vídeo)
Após o envio do SMS, é 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 código aberto e terminará com os detalhes da mensagem enviada. Você aprenderá como iniciar o projeto, como o projeto se parece durante a execução e como o arquivo de log fica depois. O vídeo tem apenas 42 segundos e é fácil de entender. Você não terá problemas para acompanhá-lo.
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 de logs na configuração da conexão antes de enviar a mensagem para visualizar os registros. Se o registro estiver ativado, você verá o número de telefone e o texto da mensagem que enviou.
Testar se a solicitação foi aceita (Tutorial em vídeo)
No vídeo a seguir, você verá como verificar se o cliente SMPP teve sucesso ao enviar sua mensagem. Você aprenderá como abrir a aba de eventos do usuário SMPP e o que procurar. O vídeo tem apenas 18 segundos, mas será muito útil.
SMS recebido no telefone (Tutorial em vídeo)
No vídeo a seguir, você verá como é uma mensagem recebida enviada pelo Ozeki SMS Gateway. Ele começará com a tela inicial de um telefone Android e terminará com a mensagem aberta. Tem apenas 18 segundos e você pode ver todo o processo de recebimento de uma mensagem.
Executando o exemplo de SMS em C# no Windows
Ao usar o Windows para executar este exemplo de SMS escrito em C#, você notará que obtém um desempenho ligeiramente melhor do que ao executá-lo no Linux. Para entender por que isso acontece, é importante lembrar que o C# usa o framework .NET para execução de código. Isso ocorre porque a implementação do .NET no Windows é otimizada para desempenho, enquanto o mono, a implementação do .NET no Linux, ainda precisa evoluir nesse aspecto.
Resumo
O guia acima explicou as etapas para enviar SMS a partir do C#. Como pode ser visto, o Ozeki fornece todas as ferramentas necessárias para a entrega de mensagens, portanto, se as etapas forem seguidas cuidadosamente, enviar mensagens a partir do C# não será mais um problema. O Ozeki SMS Gateway desempenha um papel enorme na entrega; sem esse programa, você não conseguiria alcançar os usuários móveis. É importante notar que o Ozeki SMS Gateway funciona em qualquer país, portanto, as mensagens podem ser enviadas internacionalmente com esta solução.
Não termine a leitura aqui, navegue pela página de tutoriais do Ozeki e aprenda sobre recebimento de SMS em C#.
Sua próxima ação é baixar o Ozeki SMS Gateway e começar a trabalhar!
More information