Receber SMS em Ruby Rails

O guia nesta página oferece a oportunidade de aprender como você pode usar um programa Ruby para obter as mensagens SMS recebidas do SMS Gateway. Isso pode ser feito usando solicitações HTTP que coletam as mensagens SMS recebidas. O guia contém um tutorial em vídeo e um passo a passo que ajuda você a aprender como receber mensagens SMS com Ruby.

O que é a API de SMS Ruby?

A API de SMS Ruby Rails permite que você envie mensagens SMS a partir do seu programa Ruby Rails. A API de SMS Ruby inicia solicitações HTTP e as envia para o SMS Gateway, que entrega a mensagem ao destinatário.

Pré-requisitos Receber SMS em Ruby Rails
  1. Abra o aplicativo Bloco de Notas
  2. Copie e cole o código de exemplo desta página
  3. Salve o arquivo como ReceiveSMS.rb
  4. Abra o Ozeki SMS Gateway e escolha a conexão HTTP Server
  5. Abra o formulário HTML da conexão HTTP Server
  6. Envie algumas mensagens de teste
  7. Abra o Prompt de Comando
  8. Digite 'ruby ReceiveSMS.rb' no Prompt de Comando e pressione Enter
  9. Ruby Rails recebe mensagens SMS

Vídeo 1 - Como receber SMS em Ruby Rails (Tutorial em vídeo)

Você pode usar livremente o código de exemplo SMS em Ruby em seus projetos e também pode modificá-lo. Se desejar apenas executar este código de exemplo para ver como ele funciona, basta verificar o passo a passo abaixo ou o tutorial em vídeo nesta página para ver o que é necessário para executar o código de exemplo SMS em Ruby no seu computador.

require 'net/http'
require 'rexml/document'
include REXML

def DisplayMessages(response)
	xmldoc = Document.new(response)

	xmldoc.elements.each('response/data/message') do |value|
		begin
			sender = value.elements['originator'].text
			text = value.elements['messagedata'].text
			DisplayMessage(sender,text)
		rescue
			puts("A caixa de entrada está vazia.")
		end
	end
end

def DisplayMessage(sender, text)
	puts("#{sender}: #{text}")
end

username = "john"
password = "Xc3ffs"
httpUrl = "https://127.0.0.1:9508/"
folder = "inbox";
limit = "3";

sendString = "#{httpUrl}api?action=receivemessage&username="\
			 "#{username}&password="\
			 "#{password}&folder=#{folder}&limit="\
			 "#{limit}&afterdownload=delete"

puts("Enviando solicitação http #{sendString}")

OpenSSL::SSL.send(:remove_const, :VERIFY_PEER)
OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE)

url = URI(sendString)
response = Net::HTTP.get(url)
puts("Resposta http recebida:")
DisplayMessages(response)
Passo 1 - Abrir o Bloco de Notas

Neste primeiro passo, você precisa abrir um aplicativo de editor de texto que possa lidar com arquivos Ruby. Para isso, você pode usar o aplicativo Bloco de Notas padrão, que pode ser encontrado em todos os computadores que usam o sistema operacional Windows. Então, como a Figura 1 mostra, basta abri-lo a partir da sua área de trabalho.

abrir bloco de notas
Figura 1 - Abrir o editor de texto Bloco de Notas

Passo 2 - Copiar o código Ruby

Em seguida, você precisa copiar o código de exemplo em Ruby desta página. Para fazer isso, basta rolar para cima até a seção de código de exemplo desta página e marcar todo o código de exemplo em Ruby. Em seguida, como você pode ver na Figura 2, pressione Ctrl+C no seu teclado para copiar o código Ruby para a área de transferência.

copiar código ruby
Figura 2 - Copiar código-fonte Ruby do site

Passo 3 - Colar o código no arquivo de texto

Depois de copiar o código-fonte Ruby desta página, você precisa colocá-lo em um documento de texto. Para fazer isso, vá até o aplicativo Bloco de Notas que você abriu anteriormente, e como você pode ver na Figura 3, basta pressionar Ctrl+V no seu teclado para colar todo o código-fonte Ruby no documento de texto.

colar código no bloco de notas
Figura 3 - Colar código-fonte no Bloco de Notas

Passo 4 - Salve o texto como um arquivo Ruby

Neste ponto, você tem um arquivo de texto que contém o código-fonte, mas ele ainda não está no formato correto de arquivo Ruby. O Bloco de Notas pode salvar arquivos em qualquer formato, então você pode resolver esse problema facilmente. Portanto, selecione a opção 'Salvar como' no Bloco de Notas, e salve o arquivo com a extensão '.rb'. Este procedimento é demonstrado na Figura 4.

save ruby file
Figura 4 - Salve o arquivo Ruby como ReceiveSMS.rb

Passo 5 - Envie algumas mensagens de teste

Agora, seu código de exemplo está pronto para ser executado, mas primeiro, você precisa ter algumas mensagens na sua pasta de entrada. Para fins de teste, você pode usar a conexão HTTP Server para enviar algumas mensagens de teste para si mesmo e testar o código PHP de exemplo. Então, abra o SMS Gateway e selecione a conexão HTTP Server. Aqui, abra o formulário HTML da conexão, e como na Figura 5, envie algumas mensagens para o destinatário 'Ozeki'.

Simulate incoming sms
Figura 5 - Simule algumas SMS recebidas

Passo 6 - Abra o Prompt de Comando

O passo principal do guia é executar o programa Ruby. Para isso, você precisa abrir o Prompt de Comando no seu computador. Então, primeiro navegue até a pasta onde você salvou o arquivo Ruby usando o Explorador de Arquivos. Aqui, como você pode ver na Figura 6, digite 'cmd' no Explorador de Arquivos e, se você pressionar Enter, o Prompt de Comando será aberto no seu computador.

open cmd
Figura 6 - Abra o prompt de comando

Passo 7 - Execute o programa Ruby

No Prompt de Comando, você só precisa executar um comando para rodar o programa Ruby. Então, basta digitar 'ruby *nome-do-arquivo*.rb' no Prompt de Comando e pressionar Enter. Ao fazer isso, o exemplo Ruby será executado e você poderá ver os resultados na janela do console (Figura 7). Aqui, você pode ver a requisição HTTP e a resposta para essa requisição, que contém todas as mensagens recebidas.

run ruby code
Figura 7 - Execute o código Ruby no prompt de comando