Envio SMS con RubySMS Ruby. Enviar SMS con Ruby

SMS masivo desde 2002

La integración de la pasarela HTTP de envío de SMS de Altiria es muy simple en el lenguaje Ruby. Si desarrollas habitualmente en este lenguaje de programación, te será fácil integrar el envío de SMS con Ruby a través de HTTP.

A continuación se ofrece un extracto de código simplificado utilizando la gema Ruby rest-client compatible con versiones 2.0 y posteriores de Ruby. Para satisfacer las dependencias con otras gemas Ruby se recomienda el uso de bundler. El ejemplo se debe usar como punto de partida para una puesta en marcha rápida. En cualquier caso se recomienda analizar con detalle la documentación técnica de envío de SMS masivos, API SMS. Es fundamental filtrar la respuesta emitida por la pasarela HTTP para conocer el resultado de la operación. También puede resultar de interés la información sobre el envío de mensajes concatenados (más longitud de la habitual), caracteres UNICODE o la solicitud de confirmación de entrega.

Si tienes problemas en integración, consulta nuestra página de preguntas frecuentes de integración de envío de SMS.

# encoding: iso-8859-15

# Copyright (c) 2018, Altiria TIC SL
# All rights reserved.
# El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
# Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
# más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
# https://www.altiria.com/api-envio-sms/

require 'net/http'
require 'json' 
require 'uri'

def altiriaSms(destinations, message, senderId, debug)
	if debug 
	puts "Enter altiriaSms: destinations=#{destinations}, message=#{message}, senderId=#{senderId}"
	end

	begin

		#Se fija la URL sobre la que enviar la petición POST
		url = "http://www.altiria.net/api/http"
		uri = URI.parse(url)
		http = Net::HTTP.new(uri.host, uri.port)
		#Se fija el tiempo máximo de espera para conectar con el servidor (5 segundos)
		#Se fija el tiempo máximo de espera de la respuesta del servidor (60 segundos)
		http.open_timeout = 5
		http.read_timeout = 60

                #Se crea la lista de parámetros a enviar en la petición POST
                #XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema.
                #No es posible utilizar el remitente en América pero sí en España y Europa
                post_data = {'cmd' => 'sendsms', 'domainId' => 'XX', 'login' => 'YY', 'passwd' => 'ZZ',
                             'dest' => destinations.split(","), 'msg' => message, 'senderId' => senderId}
                
		#Se envía la petición y se consigue la respuesta
		#La codificación es de tipo "application/x-www-form-urlencoded;charset=utf-8" 
		#fijado por el método "post_form"		
		response = Net::HTTP.post_form( uri, post_data)

		if debug 
			unless response.code == "200" #Error en la respuesta del servidor
				puts("ERROR GENERAL: #{response.code}")
				puts("#{response.body}")
			else	#Se procesa la respuesta
				puts("Código de estado HTTP: #{response.code}")
				if "#{response.body}".include? "ERROR errNum:"
					puts("Error de Altiria: #{response.body}")
				else
					puts("Cuerpo de la respuesta: \n#{response.body}")
				end
			end
		end

		return response

	rescue Net::OpenTimeout 
		puts "Tiempo de conexión agotado"
	rescue Net::ReadTimeout 
		puts "Tiempo de respuesta agotado"
	rescue Exception => e
		puts "Error interno: #{e.class}"
	end

end

puts "The function altiriaSms returns: #{altiriaSms('346xxxxxxxx,346yyyyyyyy','Mensaje de prueba', '', true).body}"
#No es posible utilizar el remitente en América pero sí en España y Europa
#Utilizar esta llamada solo si se cuenta con un remitente autorizado por Altiria
#puts "The function altiriaSms returns: #{altiriaSms('346xxxxxxxx,346yyyyyyyy','Mensaje de prueba', 'remitente', true).body}"

Otros protocolos de envío de SMS

API SMS REST Json

API SMS REST Json

Pasarela de envío de SMS mediante Web Services REST Json

Web Services SOAP SMS

Web Services SOAP SMS

Pasarela SMS mediante servicios web SOAP

Web de envío SMS

Web de envío SMS

Además de la integración del envío de SMS en su aplicativo, Altiria ofrece un panel de control web en que podrás consultar las estadísticas de envío y descargar informes con el estado de los envíos y la confirmación de entrega.

Mail2SMS: enviar SMS por email

Mail2SMS: enviar SMS por email

Pasarela de envío de SMS masivos por email.

Marketing SMS

Marketing SMS

Además del propio envío de SMS, Altiria te ofrece sugerencias para que tus envíos de SMS sean más efectivos.

Envío de landing web móvil parametrizada

Además del envío de un SMS, la pasarela SMS gateway de Altiria te ofrece la posibilidad de enviar una página web móvil, SMS landing, con información adicional sin las restricciones de espacio de un SMS o con un formulario de contacto para recibir respuesta de tus clientes por SMS o usuarios o enviarles encuestas por SMS, formularios de satisfacción o firma de contratos.

Además de poder parametrizar el texto del mensaje SMS, Altiria también te permite enviar parámetros adicionales  en la petición de envío para parametrizar el contenido de la web y que tus usuarios y clientes reciban un servicio personalizado.

Cobertura internacional

Siempre se debe usar el formato de numeración internacional, incluyendo el código de país. Por ejemplo, para un número de móvil de España sería 346XXXXXXXX. En el ejemplo de código anterior, se está enviando un SMS de prueba a dos teléfonos de España, 346xxxxxxxx y 346yyyyyyyy, que deberán ser sustituidos por los teléfonos con los que se quiera probar, siempre incluyendo el prefijo internacional. Ofrecemos la mejor cobertura internacional con conexiones directas de máxima calidad.

Características adicionales para enviar SMS con Ruby

  • Remitente personalizado: Personalización en el envío de SMS con Ruby del remitente de origen por una cadena de texto, por ejemplo, el nombre de su empresa. (*)
  • Confirmación de entrega: Conozca la fecha y hora en la que se ha recibido el SMS enviado o las causas por las que no se ha recibido. (*)
  • Sistema avanzado de control de crédito con aviso automático por email que impide quedarse sin crédito de envío de forma inesperada.
  • Informes automáticos de envío de SMS en Ruby y confirmación de entrega, permiten mantener un control periódico de los envíos realizados.
  • Posiblidad de reenvío de SMS pendientes por falta de crédito. Si realizó un envío de SMS con Ruby y no tenía crédito, los mensajes se quedan encolados en nuestros sistemas hasta que disponga de crédito, de forma que no necesita repetir el envío.

(*) La disponibilidad de la confirmación de entrega al usuario y del remitente personalizado depende de cada país, consúltenos para su país de interés.