Como enviar múltiplos SMS a partir do Visual Basic

A maneira mais simples de enviar SMS a partir do Visual Basic é 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.

enviar múltiplos sms a partir do visual basic
Figura 1 - Enviar múltiplos SMS a partir do Visual Basic

Código Visual Basic para enviar múltiplos SMS para celular

O exemplo de código Visual Basic 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#. Esta biblioteca é fornecida gratuitamente e você pode utilizá-la e modificá-la em qualquer um dos seus projetos.

Program.vb
Imports 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 msg1 As New Message
        msg1.ToAddress = "+36201111111"
        msg1.Text = "Olá, Mundo 1"

        Dim msg2 As New Message
        msg2.ToAddress = "+36202222222"
        msg2.Text = "Olá, Mundo 2"

        Dim msg3 As New Message
        msg3.ToAddress = "+36203333333"
        msg3.Text = "Olá, Mundo 3"

        Dim api = New MessageApi(configuration)

        Dim result = api.Send({msg1, msg2, msg3})

        Console.WriteLine(result)
        Console.ReadKey()

    End Sub
End Module

Como utilizar o exemplo de SMS em Visual Basic:

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

O código-fonte explicado neste artigo pode ser baixado, utilizado e modificado gratuitamente.
Download: SendMultipleSms.vb.zip (47.5Kb)

O que está no arquivo SendMultipleSms.vb?

O arquivo SendMultipleSms.vb 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 SendMultipleSms 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 está dentro de SendMultipleSms.vb.zip

Como enviar SMS a partir do Visual Basic (Passos rápidos)

Para enviar SMS a partir do Visual Basic:

  1. Instale o Ozeki SMS Gateway
  2. Conecte o Ozeki SMS Gateway à rede móvel
  3. Envie um SMS de teste a partir da interface gráfica do Ozeki
  4. Crie um usuário de API HTTP para SMS
  5. Inicie o Visual Studio
  6. Crie uma solução chamada SendMultipleSms.sln
  7. Adicione um projeto de console em Visual Basic: SendMultipleSms.vbproj
  8. Insira o código em Program.vb ou SendMultipleSms.vb
  9. Crie uma função em Visual Basic chamada Send_SMS
  10. Crie os dados JSON do SMS
  11. Crie uma requisição HTTP para enviar o SMS
  12. Leia a resposta HTTP
  13. Exiba a resposta no console
  14. Verifique os logs no gateway de SMS
Instale o Ozeki SMS Gateway e crie um usuário de API HTTP

Para poder enviar SMS a partir 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 em 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 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 em Visual Basic.

URL da API HTTP para enviar SMS a partir do Visual Basic

Para enviar SMS a partir do Visual Basic, seu código em Visual Basic 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 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 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 da requisição HTTP para enviar SMS do Visual Basic

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 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: 983
Content-Type: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509

{
  "messages": [
    {
      "message_id": "62772e17-837b-4630-bf48-bac5b60fc7a0",
      "to_address": "+36201111111",
      "text": "Hello, World 1",
      "create_date": "2021-06-11 14:23:42",
      "valid_until": "2021-06-18 14:23:42",
      "time_to_send": "2021-06-11 14:23:42",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    },
    {
      "message_id": "f2914efd-45da-4582-9633-f8386c1050d2",
      "to_address": "+36202222222",
      "text": "Hello, World 2",
      "create_date": "2021-06-11 14:23:42",
      "valid_until": "2021-06-18 14:23:42",
      "time_to_send": "2021-06-11 14:23:42",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    },
    {
      "message_id": "89b877d7-4f62-44da-9e70-aa195c440f85",
      "to_address": "+36203333333",
      "text": "Hello, World 3",
      "create_date": "2021-06-11 14:23:42",
      "valid_until": "2021-06-18 14:23:42",
      "time_to_send": "2021-06-11 14:23:42",
      "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 de SMS receber esta requisição, ele gerará uma resposta HTTP. A resposta HTTP conterá um código de status, para indicar se a requisição de envio de SMS foi bem-sucedida 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": 3,
    "success_count": 3,
    "failed_count": 0,
    "messages": [
      {
        "message_id": "35864941-4e2d-4757-bfe4-0fd990e9b14d",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World 1",
        "create_date": "2021-06-11 14:23:42",
        "valid_until": "2021-06-18 14:23:42",
        "time_to_send": "2021-06-11 14:23:42",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "f8e60b66-1a78-47fd-85f0-a9370acfd917",
        "from_station": "%",
        "to_address": "+36202222222",
        "to_station": "%",
        "text": "Hello, World 2",
        "create_date": "2021-06-11 14:23:42",
        "valid_until": "2021-06-18 14:23:42",
        "time_to_send": "2021-06-11 14:23:42",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "c7d6a065-38f6-4be3-a556-1f062bb86477",
        "from_station": "%",
        "to_address": "+36203333333",
        "to_station": "%",
        "text": "Hello, World 3",
        "create_date": "2021-06-11 14:23:42",
        "valid_until": "2021-06-18 14:23:42",
        "time_to_send": "2021-06-11 14:23:42",
        "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: SendMultipleSms.sln


Como baixar a solução de exemplo (Projeto de vídeo)

Neste vídeo, você aprenderá como baixar e executar o projeto de exemplo SendMultipleSms.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 arquivo do projeto. Este vídeo muito detalhado tem apenas 1 minuto de duração, então não se preocupe, você não terá problemas para entendê-lo.

Vídeo 1 - Como baixar e abrir a solução acima (Tutorial em vídeo)

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

como enviar múltiplos sms usando visual basic
Figura 3 - SendMultipleSms.sln

Como usar a solução (Tutorial em vídeo)

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 pasta de enviados preenchida. Você aprenderá como verificar o log e como iniciar o projeto para enviar as mensagens SMS. O vídeo tem apenas 1 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 aplicativo de gateway poderoso, mas fácil de aprender.

Vídeo 2 - Como usar a solução Send-multiple-SMS.vb (Tutorial em vídeo)

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, 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 algumas melhorias a fazer nesse campo.

Resumo

Este guia teve como objetivo explicar as etapas para enviar vários SMS com uma única solicitação em VB. Com esta solução, alcançar usuários móveis é mais rápido e simples. As informações podem ser espalhadas para inúmeros clientes com apenas uma solicitação em Visual Basic. O Ozeki SMS Gateway funciona em qualquer país, portanto, enviar mensagens internacionalmente não será um problema. A tecnologia apresentada pode ser realmente útil para organizações onde o envio de mensagens para um grande número de clientes é importante.

Continue seus estudos na página de tutoriais da Ozeki, onde você pode encontrar mais informações sobre tópicos como recebimento em VB.

Baixe o Ozeki SMS Gateway agora e comece a trabalhar!

More information