Como receber SMS do Go

A maneira mais simples de receber SMS do Go é usar a API de SMS HTTP/Rest integrada do Ozeki SMS Gateway. Quando você usa essa API, enviará mensagens SMS fazendo uma solicitação HTTP Post para o gateway de SMS. A solicitação HTTP Post conterá uma mensagem formatada em formato json. O gateway de SMS enviará esse SMS para o telefone do destinatário e retornará uma resposta HTTP 200 OK para sua solicitação.

como receber sms do go
Figura 1 - Como receber SMS do Go

Código Go para receber sms no celular

O exemplo de código Go para SMS abaixo demonstra como você pode receber SMS usando a API de SMS HTTP rest do Ozeki SMS Gateway com o pacote Go github.com/ozekisms/go_send_sms_http_rest_ozeki. Este pacote é fornecido gratuitamente, e você pode usá-lo e modificá-lo em qualquer um de seus projetos.

ReceiveSms.go
package main

import (
	"fmt"

	ozeki "github.com/ozekisms/go_send_sms_http_rest_ozeki"
)

func main() {
	configuration := ozeki.NewConfiguration(
		"http_user",
		"qwe123",
		"http://127.0.0.1:9509/api",
	)

	api := ozeki.NewMessageApi(configuration)

	result := api.DownloadIncoming()

	fmt.Println(result)

	for i := 0; i < len(result.Messages); i++ {
		fmt.Println(result.Messages[i])
	}
}
	

Código 1 - ReceiveSms.go

Como usar o exemplo de SMS em Go:

Este exemplo de SMS em Go pode ser usado em qualquer aplicação Go. Para usá-lo, você deve baixar o pacote github.com/ozekisms/go_send_sms_http_rest_ozeki. Após o download do pacote, você precisa adicionar uma referência a ele no seu código-fonte Go. Isso permitirá que você use as classes fornecidas pelo pacote github.com/ozekisms/go_send_sms_http_rest_ozeki. 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 ReceiveSms.go

O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: ReceiveSms.go.zip (1.05Kb)

O que está no arquivo ReceiveSms.go.zip?

No ReceiveSms.go.zip você encontrará o arquivo SendSms.go, 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 do ReceiveSms.go.zip

Como enviar SMS do Go (Passos simples)

Para enviar SMS do Go:

  1. Instale um usuário de API HTTP
  2. Ative "Log communication events" na aba Advanced
  3. Configure o Visual Studio
  4. Baixe e extraia o arquivo ReceiveSms.go.zip
  5. Inicie o aplicativo Ozeki SMS Gateway
  6. Execute o código Go ReceiveSms.go usando o prompt de comando
  7. 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 receber SMS do Go, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código Go em qualquer editor de texto, como o bloco de notas do Windows. Após a instalação, o próximo passo é conectar o Ozeki SMS Gateway à rede móvel. Você pode enviar um SMS de teste da interface gráfica 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 Go.

URL da API HTTP para receber SMS do Go

Para enviar SMS do Go, seu código Go 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 Go 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 do Go

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

import b64 "encoding/base64"

func (api *MessageApi) createAuthorizationHeader(username string, password string) string {
	var usernamePassword string = username + ":" + password
	var usernamePasswordEncoded string = b64.StdEncoding.EncodeToString([]byte(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 solicitação HTTP para enviar SMS do Go

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 Go

Para enviar o SMS, sua aplicação em Go enviará uma solicitação HTTP semelhante à mostrada abaixo. Observe que esta solicitação contém apenas um cabeçalho HTTP que define o tipo de resposta que aceitamos, e também enviamos o cabeçalho de autorização.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Accept: application/json
Accept-Encoding: gzip
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Go-http-client/1.1
	

Resposta HTTP recebida pelo exemplo de SMS em Go

Quando o gateway de 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. 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: Fri, 09 Jul 2021 09:16:35 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "6f73375b-e085-11eb-8d0e-74d4355e997d",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36202222222",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-07-09 09:15:27",
	      "valid_until": "2021-07-16 09:15:27",
	      "time_to_send": "2021-07-09 09:15:27",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "6f6f6764-e085-11eb-8d0e-74d4355e997d",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36201111111",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-09 09:15:26",
	      "valid_until": "2021-07-16 09:15:27",
	      "time_to_send": "2021-07-09 09:15:27",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "6f73375b-e085-11eb-8d0f-74d4355e997d",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36203333333",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-07-09 09:15:27",
	      "valid_until": "2021-07-16 09:15:27",
	      "time_to_send": "2021-07-09 09:15:27",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	

Como receber SMS de Go usando a API de SMS em Go (Tutorial em vídeo)

Este vídeo mostra como baixar o arquivo ReceiveSms.go.zip desta página. Se assistir ao vídeo, você notará que o conteúdo do ReceiveSms.go.zip é colocado na área de trabalho do Windows. Você também verá que executamos o prompt de comando para enviar o SMS.

Vídeo 1 - Como receber SMS de Go usando a API de SMS em Go (Tutorial em vídeo)

Exemplo de SMS em Go: ReceiveSms.go

O código de exemplo abaixo faz parte do ReceiveSms.go.

Figura 3 - Arquivo ReceiveSms.go

Como verificar se o SMS foi aceito pelo usuário HTTP

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.

Vídeo 2 - Como verificar se o SMS foi aceito pelo usuário HTTP (Tutorial em vídeo)

Conclusão

Este artigo mostrou os passos básicos para receber SMS em Go com a ajuda do Ozeki SMS Gateway. Esta solução pode ser muito útil quando você tem um local específico para suas mensagens recebidas, neste caso, você pode encaminhá-las para um programa em Go. O Ozeki SMS Gateway oferece excelentes capacidades de registro, o que significa que você pode identificar erros rapidamente, tornando o trabalho mais suave.

Certifique-se de continuar lendo na página de tutoriais da Ozeki, onde mais informações podem ser encontradas sobre tópicos semelhantes, como agendamento de SMS em Go.

A única coisa a fazer agora é baixar o Ozeki SMS Gateway e começar a trabalhar!

More information