Como receber SMS do Ruby

A maneira mais simples de receber mensagens SMS do Ruby é usar a API de SMS HTTP/Rest integrada do Ozeki SMS Gateway. Quando você usa essa API, enviará mensagens SMS emitindo 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 ruby
Figura 1 - Como receber SMS do Ruby

Código Ruby para receber mensagens SMS

O exemplo de código Ruby para SMS abaixo demonstra como você pode enviar um SMS agendado usando a API de SMS HTTP Rest do Ozeki SMS Gateway com a gem ozeki_libs_rest do Ruby. Esta biblioteca é fornecida gratuitamente, e você pode usá-la e modificá-la em qualquer um de seus projetos.

ReceiveSms.rb
require 'ozeki_libs_rest'

configuration = Configuration.new(
    "http_user",
    "qwe123",
    "http://127.0.0.1:9509/api"
);

api = MessageApi.new(configuration)

result = api.download_incoming()

print(result, "\n")
result.messages.each do |message|
    print(message, "\n")
end
	
Como usar o exemplo de SMS em Ruby:

Este exemplo de SMS em Ruby pode ser usado em qualquer aplicação Ruby. Para usá-lo, você deve baixar a gem ozeki_libs_rest. Após o download da gem, você precisa adicionar uma referência a ela no seu código-fonte Ruby. Isso permitirá que você use as classes fornecidas pela gem 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 ReceiveSms.rb

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

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

O ReceiveSms.rb.zip contém o arquivo ReceiveSms.rb, 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.rb.zip

Como enviar um SMS agendado do Ruby (Passos rápidos)

Para enviar um SMS agendado do Ruby:

  1. Baixe o arquivo ReceiveSms.rb.zip
  2. Extraia o arquivo .zip da pasta Downloads
  3. Abra o arquivo ReceiveSms.rb em qualquer editor de texto como o Bloco de Notas do Windows
  4. Inicie o Ozeki SMS Gateway
  5. Crie um usuário de API HTTP no Ozeki
  6. Execute o código Ruby ReceiveSms.rb usando o prompt de comando
  7. Verifique a caixa Enviados no Ozeki SMS Gateway
Instale o Ozeki SMS Gateway e crie um usuário de API HTTP

Para poder enviar SMS do Ruby, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código Ruby 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 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 a senha "qwe123" para fazer o exemplo funcionar sem modificações.

Após a configuração do ambiente, você pode executar seu código Ruby.

URL da API HTTP para enviar SMS do Ruby

Para enviar SMS do Ruby, seu Ruby terá que emitir 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 Ruby 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 Ruby

Para autenticar o cliente de SMS em Ruby, você precisa enviar o nome de usuário e a 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 Ruby, você pode usar o seguinte código para fazer essa codificação:

username_password = username + ':' + password
username_password_encoded = Base64.encode64(username_password)
'Basic ' + username_password_encoded
	

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 Ruby

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 do Ruby

Para solicitar suas mensagens SMS recebidas, seu aplicativo Ruby enviará uma solicitação HTTP semelhante à mostrada abaixo. Observe que esta solicitação contém apenas uma parte do cabeçalho HTTP.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Accept: application/json
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Faraday v1.5.0
	

Resposta HTTP recebida pelo exemplo Ruby de SMS

Assim que 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 a solicitação de envio de SMS foi bem-sucedida ou não. Também retornará uma estrutura codificada em JSON para fornecer detalhes úteis sobre as mensagens.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Tue, 06 Jul 2021 14:49:32 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": "4524cd1f-f048-4b78-99ec-37bd906e676d",
	      "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-06 14:47:37",
	      "valid_until": "2021-07-13 14:47:37",
	      "time_to_send": "2021-07-06 14:47:37",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "e3125586-3d66-4f91-ac4e-66747653fe24",
	      "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-06 14:47:37",
	      "valid_until": "2021-07-13 14:47:37",
	      "time_to_send": "2021-07-06 14:47:37",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "98895df5-4972-4941-8bf3-5fb0302d1fa8",
	      "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-06 14:47:37",
	      "valid_until": "2021-07-13 14:47:37",
	      "time_to_send": "2021-07-06 14:47:37",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	

Exemplo Ruby de SMS: ReceiveSms.rb

Neste vídeo, você verá o processo de download do ReceiveSMS.rb desta página de tutorial. Ele começará com a página aberta e terminará com o projeto aberto. O vídeo tem apenas 30 segundos, mas contém todas as informações necessárias para baixar o projeto de exemplo. É fácil de entender e detalhado. Você não terá problemas com os passos.

Vídeo 1 - Como baixar e abrir o arquivo acima (Tutorial em vídeo)

Código de exemplo

O código de exemplo abaixo faz parte do ReceiveSms.rb. Se você estiver familiarizado com a linguagem de programação Ruby, sinta-se à vontade para modificar o projeto de exemplo conforme desejar e enviar sua primeira mensagem de teste.

Figura 3 - Arquivo ReceiveSms.rb

Como usar o projeto de exemplo

No vídeo a seguir, você verá como pode enviar uma mensagem usando o projeto de exemplo. Ele começará com um bloco de notas aberto contendo o código-fonte. No final do vídeo, você verá as mensagens recebidas. O vídeo tem apenas 1 minuto, mas você aprenderá todos os passos necessários para concluir o processo. O vídeo é muito detalhado, então você não terá problemas para seguir os passos.

Vídeo 2 - Como usar o arquivo ReceiveSms.rb (Tutorial em vídeo)

Resumo

O objetivo deste guia foi explicar os passos para receber SMS em Ruby com a ajuda do Ozeki SMS Gateway. Com alguns passos simples, você pode encaminhar as mensagens da pasta de entrada para um programa Ruby. Esta solução é importante se você quiser coletar essas mensagens em um lugar separado. O Ozeki SMS Gateway permite gerenciar os custos de SMS e monitorar o tráfego de SMS.

Certifique-se de continuar lendo na página de tutoriais da Ozeki, onde você pode encontrar mais informações sobre tópicos semelhantes, como envio de múltiplos SMS em Ruby.

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

More information