Recibir SMS en Ruby Rails

La guía en esta página te brinda la oportunidad de aprender cómo puedes usar un programa en Ruby para obtener los mensajes SMS recibidos desde el SMS Gateway. Esto se puede hacer mediante solicitudes HTTP que recopilan los mensajes SMS recibidos. La guía incluye un video tutorial y una guía paso a paso que te ayuda a aprender la forma en que puedes recibir mensajes SMS con Ruby.

¿Qué es la API de SMS de Ruby?

La API de SMS de Ruby Rails te permite enviar mensajes SMS desde tu programa en Ruby Rails. La API de SMS de Ruby inicia solicitudes HTTP y las envía al SMS Gateway que entrega el mensaje al destinatario.

Requisitos previos

Recibir SMS en Ruby Rails

  1. Abre la aplicación Notepad
  2. Copia y pega el código de ejemplo de esta página
  3. Guarda el archivo como ReceiveSMS.rb
  4. Abre Ozeki SMS Gateway y selecciona la conexión HTTP Server
  5. Abre el formulario HTML de la conexión HTTP Server
  6. Envía algunos mensajes de prueba
  7. Abre el Command Prompt
  8. Escribe 'ruby ReceiveSMS.rb' en el Command Prompt y presiona Enter
  9. Ruby Rails recibe mensajes SMS

Video 1 - Cómo recibir SMS en Ruby Rails (Video tutorial)

Puedes usar libremente el código de ejemplo de SMS en Ruby en tus proyectos, y también puedes modificarlo. Si deseas ejecutar este código de ejemplo para ver cómo funciona, solo revisa la guía paso a paso a continuación o el video tutorial en esta página para ver lo que se necesita para ejecutar el código de ejemplo de SMS en Ruby en tu computadora.

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("La bandeja de entrada está vacía.")
		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 solicitud 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("Respuesta HTTP recibida:")
DisplayMessages(response)

Paso 1 - Abrir Notepad

En este primer paso, necesitas abrir una aplicación de editor de texto que pueda manejar archivos Ruby. Para ese propósito, puedes usar la aplicación Notepad predeterminada que se encuentra en todas las computadoras con sistema operativo Windows. Entonces, como muestra la Figura 1, solo ábrela desde tu escritorio.

abrir notepad
Figura 1 - Abrir el editor de texto Notepad

Paso 2 - Copiar el código Ruby

A continuación, necesitas copiar el código de ejemplo de Ruby de esta página. Para hacer eso, solo desplázate hacia arriba hasta la sección del código de ejemplo de esta página y marca todo el código de ejemplo de Ruby. Luego, como puedes ver en la Figura 2, presiona Ctrl+C en tu teclado para copiar el código Ruby al portapapeles.

copiar código ruby
Figura 2 - Copiar código fuente de Ruby desde el sitio web

Paso 3 - Pegar el código en el archivo de texto

Después de copiar el código fuente de Ruby de esta página, necesitas colocarlo en un documento de texto. Para hacer esto, solo ve a la aplicación Notepad que abriste antes, y como puedes ver en la Figura 3, solo presiona Ctrl+V en tu teclado para pegar todo el código fuente de Ruby en el documento de texto.

pegar código en notepad
Figura 3 - Pegar código fuente en Notepad

Paso 4 - Guardar el texto como un archivo Ruby

En este punto, tienes un archivo de texto que contiene el código fuente, pero aún no está en el formato correcto de archivo Ruby. Notepad puede guardar archivos en cualquier formato, así que puedes resolver este problema fácilmente. Entonces, selecciona la opción 'Guardar como' en Notepad, y guarda el archivo con la extensión '.rb'. Este procedimiento se demuestra en la Figura 4.

guardar archivo ruby
Figura 4 - Guardar archivo Ruby como ReceiveSMS.rb

Paso 5 - Enviar algunos mensajes de prueba

Ahora, tu código de ejemplo está listo para ejecutarse, pero primero, necesitas tener algunos mensajes en tu bandeja de entrada. Para propósitos de prueba, puedes usar la conexión HTTP Server para enviar algunos mensajes de prueba a ti mismo y probar el código de ejemplo en PHP. Entonces, abre el SMS Gateway y selecciona la conexión HTTP Server. Aquí, abre el formulario HTML de la conexión, y como en la Figura 5, envía algunos mensajes al destinatario 'Ozeki'.

Simular SMS entrantes
Figura 5 - Simular algunos SMS entrantes

Paso 6 - Abrir el Command Prompt

El paso principal de la guía es ejecutar el programa en Ruby. Para hacer eso, necesitas abrir el Command Prompt en tu computadora. Entonces, primero navega a la carpeta donde guardaste el archivo Ruby usando el File Explorer. Aquí, como puedes ver en la Figura 6, escribe 'cmd' en el File Explorer, y si presionas Enter, el Command Prompt se abre en tu computadora.

abrir cmd
Figura 6 - Abrir el Command Prompt

Paso 7 - Ejecutar el programa Ruby

En el Command Prompt, solo necesitas realizar una línea de comando para ejecutar el programa en Ruby. Entonces, solo escribe 'ruby *nombrearchivo*.rb' en el Command Prompt y presiona Enter. Al hacer esto, el ejemplo en Ruby se ejecutará, y podrás ver los resultados en la ventana de la consola (Figura 7). Aquí, puedes ver la solicitud HTTP y la respuesta a esa solicitud también, que contiene todos los mensajes recibidos.

ejecutar código ruby
Figura 7 - Ejecutar código Ruby en el Command Prompt