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.
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.gopackage 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]) } }
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)
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.
Para enviar SMS do Go:
- Instale um usuário de API HTTP
- Ative "Log communication events" na aba Advanced
- Configure o Visual Studio
- Baixe e extraia o arquivo ReceiveSms.go.zip
- Inicie o aplicativo Ozeki SMS Gateway
- Execute o código Go ReceiveSms.go usando o prompt de comando
- Verifique os logs para ver se o SMS foi enviado
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 GoPara 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
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 GoPara 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.
Exemplo de SMS em Go: ReceiveSms.go
O código de exemplo abaixo faz parte do 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.
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
- Enviar SMS com a API REST HTTP em Go (exemplo de código)
- Enviar múltiplos SMS com a API REST HTTP em Go (exemplo de código)
- Agendar SMS com a API REST HTTP em Go (exemplo de código)
- Receber SMS com a API REST HTTP em Go (exemplo de código)
- Excluir SMS com a API REST HTTP em Go (exemplo de código)
- Como baixar a biblioteca Go SMS mais recente do Github