Como enviar SMS a partir de Tcl/Tk

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

como enviar sms a partir de tcl tk
Figura 1 - Como enviar SMS a partir de Tcl/Tk

Código Tcl/Tk para enviar SMS para celular

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

SendSms.tcl
source Ozeki.Libs.Rest.tcl


set configuration [ Configuration new ]
$configuration setUsername "http_user" 
$configuration setPassword "qwe123"
$configuration setApiUrl "http://127.0.0.1:9509/api"

set msg [ Message new ]
$msg setToAddress "+36201111111"
$msg setText "Olá mundo!"

set api [ MessageApi new $configuration ]

set result [ $api send $msg ]

puts [ $result toString ]
	

Como utilizar o exemplo de SMS em Tcl/Tk:

Este exemplo de SMS em Tcl/Tk pode ser utilizado em qualquer aplicação Tcl/Tk. Para utilizá-lo, você deve adicionar o arquivo Ozeki.Libs.Rest.tcl ao seu projeto. Após adicionar o arquivo, você deve incluir a diretiva source Ozeki.Libs.Rest.tcl na seção de cabeçalho do seu código-fonte Tcl/Tk. 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 sem fio ou pela Internet.

Baixar SendSms.tcl

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

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

O arquivo SendSms.tcl.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.

diretório de envio de sms tcl
Figura 2 - O que há dentro de SendSms.tcl.zip

Como enviar SMS a partir de Tcl/Tk (Passos simples)

Para enviar SMS a partir de Tcl/Tk:

  1. Instale um usuário de API HTTP
  2. Ative "Log communication events" na aba Advanced
  3. Baixe e instale a biblioteca Tcllib
  4. Baixe e extraia o arquivo SendSms.tcl.zip
  5. Abra o arquivo SendSms.tcl em um editor de texto
  6. Inicie o aplicativo Ozeki SMS Gateway
  7. Execute o código Tcl/Tk SendSms.tcl no terminal
  8. Verifique os logs para ver 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 Tcl/Tk, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código Tcl/Tk 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 de 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 Tcl/Tk.

URL da API HTTP para enviar SMS a partir de Tcl/Tk

Para enviar SMS a partir de Tcl/Tk, o seu código Tcl/Tk 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 Tcl/Tk 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 Tcl/Tk

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

set usernamePassword "$username:$password"
set usernamePasswordEncoded [ binary encode base64 $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 Tcl/Tk

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 Tcl/Tk

Para enviar o SMS, sua aplicação Tcl/Tk 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
Host: 127.0.0.1:9509
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 10.0) http/2.9.0 Tcl/8.6.9
Connection: close
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Accept: */*
Accept-Encoding: gzip,deflate,compress
Content-Type: application/json
Content-Length: 320

{
	"messages": [
		{
			"message_id": "48de1284-aea2-442b-a8cd-45112153a94f",
			"to_address": "+36201111111",
			"text": "Hello world!",
			"create_date": "2021-08-03T14:36:27",
			"valid_until": "2021-08-10T14:36:27",
			"time_to_send": "2021-08-03T14:36:27",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true
		}
	]
}
	

Resposta HTTP recebida pelo exemplo de SMS em Tcl/Tk

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
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf8
Last-Modified: Mon, 02 Aug 2021 13:44:10 GMT
Server: 10/10.3.124 Microsoft-HTTPAPI/2.0
User-Agent: OZEKI 10.3.124 (www.myozeki.com)
Access-Control-Allow-Origin: *
Date: Tue, 03 Aug 2021 12:36:27 GMT
Connection: close

{
  "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": "48de1284-aea2-442b-a8cd-45112153a94f",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello world!",
        "create_date": "2021-08-03 14:36:27",
        "valid_until": "2021-08-10 14:36:27",
        "time_to_send": "2021-08-03 14:36:27",
        "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 que você conectou-o à rede móvel. Para poder enviar SMS para um telefone móvel a partir de Tcl/Tk, 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 na página inicial do Ozeki SMS Gateway e termina na aba de Eventos do novo usuário. O vídeo mostra 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.

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

Como instalar o Tcllib no Linux

Se você estiver usando uma máquina Linux, você precisará instalar a biblioteca Tcllib antes de começar a usar a biblioteca Ozeki.Libs.Rest. No vídeo a seguir eu mostrarei como instalar a biblioteca Tcllib usando o terminal e fossil. Você pode pular esta parte se já tiver instalado o Tcllib.

Vídeo 2 - Como instalar Tcllib no Linux (Tutorial em vídeo)

Passos para instalar a biblioteca Tcllib no Linux

  1. Para instalar a biblioteca Tcllib, precisaremos de algo chamado fossil. Para instalar fossil em uma máquina Linux, você precisará deste comando:

    sudo apt-install fossil
    			
  2. Depois de instalar o fossil, podemos continuar clonando a biblioteca Tcllib com o seguinte comando:

    cd Desktop
    fossil clone http://core.tcl.tk/tcllib tcllib.fossil
    			
  3. Depois de clonar a biblioteca Tcllib, devemos criar um diretório e extrair a biblioteca nele.

    mkdir tcllib
    cd tcllib
    fossil open ../tcllib.fossil
    			
  4. Então podemos instalar a biblioteca Tcllib usando o seguinte comando:

    sudo tclsh installer.tcl
    			
  5. Após o processo de instalação estar concluído, podemos testar a biblioteca com o seguinte comando:

    tclsh
    % package require uuid // 1.0.7
    % uuid::uuid generate // c004b0d6-f983-4169-8748-31013dfd24b2
    			

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

Este vídeo mostra como baixar o arquivo SendSms.tcl.zip desta página e como extrair seu conteúdo em um editor de texto. Se assistir ao vídeo, você notará que o conteúdo do SendSms.tcl.zip é colocado na Área de Trabalho. Você também verá que clicamos duas vezes no arquivo SendSms.tcl para abrir o script Tcl.

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

Exemplo de SMS em Tcl/Tk: SendSms.tcl

O código de exemplo abaixo faz parte do arquivo SendSms.tcl.zip. No zip, você encontrará dois arquivos: SendSms.tcl e o Ozeki.Libs.Rest.tcl.

como enviar sms usando tcl
Figura 3 - SendSms.tcl

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 no seu gateway de SMS 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ça com o código aberto e termina com os detalhes da mensagem enviada. Você aprenderá como iniciar o projeto, como o projeto se comporta durante a execução e como o arquivo de log aparece depois. O vídeo tem apenas 42 segundos e é fácil de entender. Você não terá problemas para acompanhá-lo.

Vídeo 4 - Como enviar SMS com o código Tcl/Tk acima (Tutorial em vídeo)

Como verificar se o SMS foi enviado para a rede móvel

O passo final para verificar o procedimento é conferir os logs da conexão com a rede móvel. Pode ser necessário ativar o log na configuração da conexão antes de enviar a mensagem para ver os registros. Se o log estiver ativado, você verá o número de telefone e o texto da mensagem enviada.

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.

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

SMS recebido no telefone (Tutorial em vídeo)

No vídeo a seguir, você verá como uma mensagem recebida enviada pelo Ozeki SMS Gateway se parece. Ele começa com a tela inicial de um telefone Android e termina com a mensagem aberta. Tem apenas 18 segundos e mostra todo o processo de recebimento de uma mensagem.

Vídeo 6 - Como é o recebimento de uma mensagem SMS no telefone móvel (Tutorial em vídeo)

Resumo

O guia acima explicou os passos para enviar SMS a partir de Tcl/Tk. Como foi possível ver, o Ozeki fornece todas as ferramentas necessárias para o envio de mensagens, então, se os passos forem seguidos cuidadosamente, enviar mensagens de Tcl/Tk não será mais um problema. O Ozeki SMS Gateway desempenha um papel enorme no envio, pois sem ele não seria possível alcançar os usuários móveis. É importante notar que o Ozeki SMS Gateway funciona em qualquer país, portanto, 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 Tcl/Tk.

Sua próxima tarefa é baixar o Ozeki SMS Gateway e começar a trabalhar!

More information