Cómo enviar SMS por Ruby en 3 pasos

🕒 8 min.

Ya os hemos hablado en otras ocasiones de los lenguajes de programación como Python (de hecho Ruby está inspirado en Python) necesarios para simplificarnos distintas tareas.

Ruby es un tipo de lenguaje de programación interpretado, reflexivo y que nos permite innovar la forma de obtener resultados, además de flexible para poder usarlo desde cualquier dispositivo, tanto web, iPhone o Android. Otro plus es que también Google Cloud pone a disposición de los desarrolladores de Ruby las herramientas que necesitan para crear aplicaciones nativas de la nube.

Entre sus beneficios, podemos encontrar los siguientes:

  • Una amplia variedad de librerías (más de 60.000).
  • Es código libre. 
  • Flexibilidad para modificarlo a tu gusto
  • Modelo-Vista-Controlador permite la escalabilidad del proyecto.
  • Favorece el desarrollo de apps.

Cómo funciona

Pasos para enviar SMS con Ruby

Lo primero de todo es instalar el kit de desarrollo de software (SDK) de Instasent mediante gem, que es el gestor de paquetes para el lenguaje de programación Ruby.

Luego se importa la biblioteca en tu aplicación escrita en Ruby. Casi todas estas bibliotecas se lanzan en forma de gema, una biblioteca o aplicación empaquetada que se puede instalar con una herramienta llamado RubyGems.

Una vez importada la librería y configurada con tu token ya puedes crear mensajes mediante los métodos de la librería. Por cada método que se utilice, se lanza una petición HTTP a la API de Instasent (https://docs.instasent.com/1.0/sms/sms), en cada lenguaje se hace de una manera diferente, pero básicamente son simples llamadas a la APIN o se mantienen conexiones abiertas.

Ejemplos de código para envío de SMS

Os dejamos un ejemplo de código sencillo para enviar un mensaje de texto a través de cURL. Ten en cuenta que en el apartado de “Authorization” tendrías que poner tu API Token:

$> curl --location --request POST 'https://api.instasent.com/sms/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer MY_TOKEN' \
--data-raw '{ "from":"Instasent", "to":"+34666000000", "text":"Test message" }'

La respuesta sería la siguiente:

json
{
  "entity": {
    "id": "588875a72c98d52a6348e701",
    "clientId": null,
    "status": "enqueued",
    "statusCode": null,
    "from": "Instasent",
    "country": "ES",
    "to": "+34666000000",
    "normalizedTo": "+34666000000",
    "charsCount": 28,
    "text": "Test message",
    "deliveredText": "Test message",
    "messagesCount": 1,
    "concatsLimit": 10,
    "finalMessagesCount": 1,
    "encoding": "GSM_7BIT",
    "unicode": false,
    "allowUnicode": false,
    "isSanitized": true,
    "isTruncated": false,
    "charged": true,
    "pricePerSms": 0,
    "priceUser": 0,
    "deliveryReportMask": 0,
    "scheduledAt": null,
    "chargedAt": "2020-01-01T00:00:00+0200",
    "sentAt": null,
    "deliveredAt": null,
    "createdAt": "2020-01-01T00:00:00+0200"
  }
}

Cómo hacerlo con la API de Instasent paso a paso

Tenemos una API de transferencia de estado representacional (REST) para acciones como el envío de SMS masivos. Para poder usarla, debes tener una cuenta activa en Instasent y crear un API Token que te dará acceso al uso de la API.

Estos API tokens pueden estar en uno de los siguientes modos:

  • test: útil para hacer pruebas de integración con la plataforma de Instasent.
  • producción: en este modo los mensajes sí se enviarán.

Entonces, el envío de SMS masivos mediante este software en Instasent solo requiere de unos pocos pasos:

En el panel de Instasent podrás encontrar un SKD (software development kit) que te facilitará el uso de la API Rest, entre los que se encuentra Ruby.

Paso 1

Lo primero que hay que hacer es instalar el SDK mediante gem:

$> gem install instasent

O incluyendo la dependencia en tu Gemfile:

gem 'instasent'

Cuando lo tengamos instalado, ya estará listo para usarlo.

Paso 2

Luego, tocaría importar la librería.

require 'instasent'

Paso 3

Una vez tengamos estos pasos, solo nos quedaría elegir el cliente al que queremos enviar el mensaje de texto. Recuerda que en el apartado “MY TOKEN” deberás incluir tu API Token.

ruby
require 'instasent'

client = Instasent::Client.new('MY_TOKEN')

Recomendaciones a la hora de enviar mensajes por Ruby

Existen varios factores a tener en cuenta a la hora de hacer los envíos. Por ejemplo, debes recordar que el límite de caracteres alfanuméricos del campo del remitente (“from”) es de 11, puede ser tanto el nombre de tu empresa como el número de teléfono.

A la hora de rellenar el campo del destinatario, debes tener en cuenta que existe un orden concreto para este concepto, debe estar en el formato E.164. Esto es que cada país tiene asignado un código numérico para llamadas y mensajes internacionales, de forma que se construiría de esta forma: 

  • el signo más (+)
  • el código del país al que nos queremos dirigir
  • el número de teléfono del destinatario

Además, si nuestra campaña va dirigida a México o Argentina, debemos tener presente que hay que añadir un prefijo entre el código del país y el número de teléfono:

  • Para México es el 1
  • Para Argentina es el 9

En cuanto al juego de caracteres que podemos utilizar en los SMS, contamos con dos tipos. 

Por un lado tenemos el GSM, la codificación estándar para los mensajes con este juego es el alfabeto predeterminado de 7 bits. Está limitado a caracteres latinos (que incluye la letra Ñ) y solo a algunos acentos. Además, tiene una limitación de 160 caracteres por mensaje (en el caso de los mensajes concatenados, el límite es de 153).

Por otro lado, está el Unicode, que nos permite utilizar emojis y no tiene límite de tipo de caracteres, pero sí tiene un límite en la longitud del mensaje, que baja a 70 (en los concatenados, 67). 

Códigos HTTP de respuesta

Cuando realices acciones como el envío de SMS, nuestra API te enviará códigos de respuesta, que sirven para que puedas confirmar que el envío ha sido correcto o si ha habido algún fallo en el proceso.

En el caso de recibir el código 201, no hay de qué preocuparse porque este código significa que todo ha ido correctamente.

Thumb up gif

Sin embargo, si se da el caso que reciben otro tipo de código, aquí te dejamos el por qué.

  • 400 Wrong Request: La petición contiene algo incorrecto.
  • 401 Authentication Failed: El token que se ha usado es inválido.
  • 402 No Funds: No contamos con suficiente saldo para realizar el envío.
  • 413 Request entity too large: El envío bulk contiene demasiados elementos.
  • 422 Validation Errors: Error de validación.
  • 429 Rate limit reached: Demasiadas peticiones en poco tiempo.

Postman Collection

Puedes descargarte una colección de Postman que puede ayudarte a hacerte una idea de cómo funciona la API de Instasent y así probarla más fácilmente.

Errores técnicos más comunes

Como hemos comentado, es posible que a la hora de crear los envíos de SMS mediante Ruby nos aparezcan mensajes de error durante el proceso. No nos alarmemos, porque todo error tiene su por qué y su solución. De los códigos de error que hemos visto más arriba, los dos últimos suelen ser los más comunes. Vamos a verlos:

Uno de ellos es el 422, que significa que la validación de uno o más campos ha fallado.

json
{
  "errors": {
    "fields": {
      "to": [
        "Invalid number"
      ]
    }
  }
}

El otro es el 429. Cuando recibamos este código de error, significará que un usuario ha enviado demasiadas peticiones en un corto periodo de tiempo. Para corregirlo, solo tendremos que disminuir la velocidad de envío, para que no se colapsen.

Razones para hacerlo con la API de Instasent

Además de que la interfaz resulta muy intuitiva, en Instasent contamos con algunos bonus que pueden resultarte muy útiles cuando realices envíos de SMS masivo mediante nuestra API. Por ejemplo, contarás con una sección de prueba para que puedas tantear las distintas solicitudes o respuestas de la API.

Podrás realizar todas tus operaciones y acceder a ellas desde cualquier dispositivo ya que nuestra interfaz se encuentra en la nube, y analizar en tiempo real los resultados de tus campañas.

Y en la sección de documentación podrás encontrar toda la información necesaria para aclarar cualquier duda relacionada tanto con los SDKs, Lookup, búsquedas de números, modelos, etc.

Nuestros precios

Tenemos distintas tarifas que se adaptan a tus campañas de SMS fácilmente. Puedes calcular el presupuesto de tus campañas con nuestra calculadora, que te da la opción de prever lo que pagarás dependiendo de la cantidad de SMS que envíes o de la cantidad que quieras aportar.

TU PRESUPUESTO A MEDIDA

RESUMEN DE COMPRA

País España

Nº de SMS 0

Precio total (sin IVA) 0 €

Precio por SMS (sin IVA) 0 €

Descarga el listado completo de precios SMS por país

WOW!

Para volumenes superiores a 10 mil SMS ponte en contacto con nosotros y te haremos una oferta!

Deja un comentario