Como agendar um SMS em Visual Basic
A maneira mais simples de enviar SMS a partir do Visual Basic é 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 sua solicitação.
O exemplo de código Visual Basic 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 do Visual Basic. Esta biblioteca é fornecida gratuitamente e você pode usá-la e modificá-la em qualquer um de seus projetos.
Program.vbImports Ozeki.Libs.Rest Module Program Sub Main(args As String()) Dim configuration As New Configuration configuration.Username = "http_user" configuration.Password = "qwe123" configuration.ApiUrl = "http://127.0.0.1:9509/api" Dim msg As New Message msg.ToAddress = "+36201111111" msg.Text = "Olá, Mundo!" msg.TimeToSend = DateTime.Parse("2021-06-11 14:46:00") Dim api = New MessageApi(configuration) Dim result = api.Send(msg) Console.WriteLine(result) Console.ReadKey() End Sub End Module
Como usar o exemplo de SMS em Visual Basic:
Este exemplo de SMS em Visual Basic pode ser usado em qualquer aplicação .NET ou .NET core. Para usar você deve adicionar a DLL Ozeki.Libs.Rest como referência ao seu projeto. Após adicionar a referência do projeto, você deve colocar a diretiva using Ozeki.Libs.Rest; na seção de cabeçalho do seu código fonte Visual Basic. 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 wireless ou pela Internet.
Baixar SendScheduledSms.vb
O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: SendScheduledSms.vb.zip (47.6Kb)
O arquivo SendScheduledSms.cs 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 SendScheduleSms 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 do Visual Basic:
- Instale o Ozeki SMS Gateway
- Conecte o Ozeki SMS Gateway à rede móvel
- Envie um SMS teste da interface do Ozeki
- Crie um usuário de API HTTP para SMS
- Inicie o Visual Studio
- Crie uma solução chamada SendScheduledSms.sln
- Adicione um projeto de console Visual Basic: SendScheduledSms.vbproj
- Coloque o código em Program.vb ou SendScheduledSms.vb
- Crie uma função Visual Basic chamada Send_SMS
- Crie os dados Json do SMS
- Crie uma solicitação HTTP para enviar o SMS
- Leia a resposta HTTP
- Escreva a resposta no console
- Verifique os logs no gateway de SMS
Para poder enviar SMS do Visual Basic, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código Visual Basic 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 teste da interface 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 fazer o exemplo funcionar sem modificações.
Após configurar o ambiente, você pode executar seu código Visual Basic.
URL da API HTTP para enviar SMS do Visual BasicPara enviar SMS do Visual Basic, seu código Visual Basic 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 de SMS em Visual Basic 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 Visual Basic
Para autenticar o cliente de SMS do Visual Basic, 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#, 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 de requisição HTTP para enviar SMS a partir do F#
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 agendado a partir do Visual Basic
Para enviar o SMS, sua aplicação em Visual Basic 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: Keep-Alive Content-Length: 336 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "message_id": "9f79a6bd-5264-4ebe-a04c-4f1353c54657", "to_address": "+36201111111", "text": "Olá, Mundo!", "create_date": "2021-06-11 14:34:41", "valid_until": "2021-06-18 14:34:41", "time_to_send": "2021-06-11 14:46:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
Resposta HTTP recebida pelo exemplo de SMS em Visual Basic
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 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.118 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 08:44:45 GMT Server: 10/10.3.118 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": "ca824cbe-784c-44f9-b657-1c04f711f529", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Olá, Mundo!", "create_date": "2021-06-11 14:34:41", "valid_until": "2021-06-18 14:34:41", "time_to_send": "2021-06-11 14:46:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Exemplo de SMS em Visual Basic: SendScheduledSms.sln
Como baixar o projeto de exemplo (Tutorial em vídeo)
Neste vídeo, você aprenderá como baixar e executar o projeto de exemplo SendScheduledSms.sln. O vídeo começará com a página de download e terminará com o editor de código aberto. Você aprenderá como baixar e como abrir o código de exemplo em Visual Basic. Este vídeo muito detalhado tem apenas 1 minuto de duração e é fácil de entender. Não se preocupe, você não terá problemas para acompanhá-lo.
O código de exemplo abaixo faz parte da Solução do Visual Studio SendScheduledSms.sln. Uma solução do Visual Studio pode conter vários projetos e vários arquivos. Nesta solução há apenas um projeto: SendScheduledSms.vbproj, e um arquivo: Program.vb.
Como usar o projeto de exemplo
No próximo vídeo, você aprenderá como executar o código de exemplo e como verificar o log do processo. Ele começará com o lançamento do Ozeki SMS Gateway e o levará até a lista de mensagens adiadas. Você aprenderá como verificar o log e como lançar o projeto para enviar as mensagens agendadas. O vídeo tem apenas 1:22 minuto de duração, então você não terá problemas para entendê-lo. Usamos o software Ozeki SMS Gateway para registro e envio de SMS. É um software de gateway poderoso, mas fácil de aprender.
Executando o exemplo de SMS em Visual Basic no Windows
Quando você usa o Windows para executar este exemplo de SMS escrito em Visual Basic, você notará que obtém um desempenho ligeiramente melhor do que quando o executa no Linux. Para entender por que isso acontece, você deve lembrar que o Visual Basic 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 tem algum caminho a percorrer nesse campo.
Conclusão
O objetivo deste artigo foi mostrar os passos para agendamento de SMS em VB com a ajuda do Ozeki SMS Gateway. As ferramentas e explicações são fornecidas pela Ozeki. Se você leu tudo com atenção e realizou todos os passos, deve ser capaz de agendar as mensagens no Visual Basic.
O Ozeki SMS Gateway pode ser baixado no site da Ozeki e pode ser usado em um período de teste, que é completamente gratuito. Agendar mensagens permite que você envie SMS para usuários móveis quando eles não estiverem ocupados, o que significa que você pode trabalhar com maior eficiência.
Certifique-se de não terminar sua leitura aqui, confira a página de tutoriais da Ozeki, onde há mais informações sobre tópicos semelhantes, como recebimento em VB.
Sua próxima tarefa é baixar o Ozeki SMS Gateway e começar a trabalhar!
More information
- Enviar SMS com a API REST HTTP em VB (exemplo de código)
- Enviar múltiplos SMS com a API REST HTTP em VB (exemplo de código)
- Agendar SMS com a API REST HTTP em VB (exemplo de código)
- Receber SMS com a API REST HTTP em VB (exemplo de código)
- Excluir SMS com a API REST HTTP em VB (exemplo de código)
- Github: API SMS VB
- Biblioteca NuGet SMS para Visual Basic (VB)