Utiliza SMS y servicios de voz a través de Twilio

Twilio impulsa el futuro de las comunicaciones empresariales, ya que permite a los desarrolladores incorporar voz, VoIP y mensajería en las aplicaciones. Los desarrolladores virtualizan las infraestructuras necesarias en un entorno global basado en la nube y lo exponen mediante la plataforma de API de comunicaciones de Twilio. Las aplicaciones son escalables y fáciles de compilar. Disfruta de la flexibilidad de los precios de prepago y aprovecha la fiabilidad de la nube.

Twilio Voice permite que tu aplicación realice y reciba llamadas telefónicas. Twilio SMS permite que tu aplicación envíe y reciba mensajes de texto. Twilio Client permite hacer llamadas VoIP desde cualquier teléfono, tablet o navegador, y es compatible con WebRTC.

Precios

Los clientes de Google App Engine reciben Crédito gratuito para mensajes SMS o minutos entrantes cuando realizas actualizaciones.

Twilio es un servicio de prepago. No hay tarifas iniciales y puedes cerrar tu cuenta en cualquier momento. Puedes encontrar más detalles en Precios de Twilio.

Plataforma

La plataforma de Twilio consta del lenguaje de marcación de Twilio (TwiML), una API de RESTful y el SDK de VoIP para navegadores web, iOS y Android. Las bibliotecas auxiliares están disponibles en varios idiomas. Puedes encontrar la lista completa en Bibliotecas auxiliares de Twilio.

TwiML

TwiML es un conjunto de instrucciones que puedes utilizar para indicarle a Twilio qué hacer cuando recibas una llamada entrante o un SMS. Cuando alguien te llame o envíe un SMS a uno de tus números de Twilio, este buscará la URL asociada a ese número de teléfono y le hará una solicitud. Twilio leerá las instrucciones TwiML de la URL para determinar qué hacer.

  • <Say>: Texto a voz
  • <Record>: Grabar la llamada
  • <Play>: Reproducir un mensaje para el emisor
  • <Gather>: Solicitar al emisor que presione dígitos en el teclado
  • <Message>: Enviar un mensaje

Obtén más información sobre otras acciones y funciones en la documentación del lenguaje de marcación de Twilio.

API de REST

La API de REST de Twilio te permite consultar metadatos de tu cuenta, números de teléfono, llamadas, mensajes de texto y grabaciones. También puedes realizar algunas operaciones, como iniciar llamadas salientes y enviar mensajes de texto.

Como la API se basa en los principios de REST, es muy sencillo escribir y probar aplicaciones. Puedes acceder a las URL con tu navegador y utilizar casi cualquier cliente HTTP en cualquier lenguaje de programación a fin de interactuar con la API. Para obtener más información, consulta la API de REST de Twilio.

Copia el código de muestra

En GitHub, tienes a tu disposición un código de muestra completo que explica la integración con Twilio. Si quieres utilizarlo, cópialo en tu máquina local:

git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/appengine/twilio

Configuración

Para recibir una llamada entrante y enviar o recibir un SMS con Twilio, sigue estos pasos:

  1. Crea un proyecto. Si necesitas más instrucciones, consulta "Hello, World!" para Node.js en App Engine.

  2. Crea una cuenta de Twilio.

  3. En Twilio, Crea un número. Configura las URL para tu número de Twilio según las necesidades de tu app. Por ejemplo, para el Código de muestra:

    • Configura la URL de solicitud de voz para que sea https://[your-app-id].appspot.com/call/receive
    • Configura la URL de solicitud de SMS para que sea https://[your-app-id].appspot.com/sms/receive
  4. Establece la configuración de Twilio en la sección de variables de entorno del archivo en app.standard.yaml. Por ejemplo:

    # The following env variables may contain sensitive information that grants
    # anyone access to your Twilio account. Do not add this file to your source
    # control.
    env_variables:
      TWILIO_ACCOUNT_SID: <your-account-sid>
      TWILIO_AUTH_TOKEN: <your-auth-token>
      TWILIO_NUMBER: <your-twilio-number>

  5. Agrega Twilio a tus dependencias en la biblioteca al archivo package.json de tu aplicación, por ejemplo:

    npm install --save twilio
    

    App Engine se asegurará de que se instalen todas las dependencias declaradas en el archivo package.json cuando implementes tu aplicación.

  6. Para preparar las pruebas locales de tu app, configura las variables de entorno en tu máquina local con la línea de comandos. Por ejemplo, para el código de muestra, se puede usar:

    export TWILIO_ACCOUNT_SID=[your-twilio-account-sid]
    export TWILIO_AUTH_TOKEN=[your-twilio-auth-token]
    export TWILIO_NUMBER=[your-twilio-number]
    
  7. Puedes ejecutar la aplicación de manera local para probar las devoluciones de llamadas y el envío de SMS. Por ejemplo:

    npm start
    

Recibe una llamada entrante

Una vez establecida la Configuración, crea tu primera aplicación:

El controlador /call/receive de app.js indica cómo responder una llamada entrante y mostrar instrucciones TwiML:

app.post('/call/receive', (req, res) => {
  const resp = new TwimlResponse();
  resp.say('Hello from Google App Engine.');

  res
    .status(200)
    .contentType('text/xml')
    .send(resp.toString());
});
  1. Implementa tu proyecto en App Engine. Después de implementar tu proyecto, puedes enviar una solicitud HTTP POST a http://your-app-id.appspot.com/call/receive, que muestra el texto a continuación:

    <?xml version="1.0" encoding="UTF-8"?>
      <Response>
        <Say>Hello from Twilio!</Say>
      </Response>
    
  2. Copia y pega la URL http://your-app-id.appspot.com/call/receive en la casilla de URL de Voice en la página Números de tu cuenta de Twilio.

  3. Ahora llama a tu número de Twilio. Debes escuchar una voz que dice "¡Hello from Twilio!" como respuesta. Cuando llames, Twilio recuperará la URL y ejecutará las instrucciones XML mencionadas anteriormente. Luego, Twilio colgará porque no hay más instrucciones.

Envía un SMS

Para enviar un SMS saliente con Twilio, puedes utilizar la biblioteca auxiliar twilio-node.

El controlador /sms/send en app.js indica cómo enviar un SMS:

app.get('/sms/send', (req, res, next) => {
  const to = req.query.to;
  if (!to) {
    res
      .status(400)
      .send('Please provide an number in the "to" query string parameter.');
    return;
  }

  twilio.sendMessage(
    {
      to: to,
      from: TWILIO_NUMBER,
      body: 'Hello from Google App Engine',
    },
    err => {
      if (err) {
        next(err);
        return;
      }
      res.status(200).send('Message sent.');
    }
  );
});
  1. Cambia el parámetro to para utilizar un número de teléfono real. El número to puede ser cualquier número saliente, como tu número de teléfono celular.

  2. Implementa el código actualizado y, luego, envía el SMS con la siguiente URL en un navegador web: http://your-app-id.appspot.com/sms/send

Recibe un SMS

Para recibir un SMS entrante con Twilio, puedes utilizar la biblioteca auxiliar twilio-node.

El controlador /sms/receive en app.js indica cómo responder un SMS entrante y mostrar instrucciones TwiML:

app.post('/sms/receive', bodyParser, (req, res) => {
  const sender = req.body.From;
  const body = req.body.Body;

  const resp = new TwimlResponse();
  resp.message(format('Hello, %s, you said: %s', sender, body));

  res
    .status(200)
    .contentType('text/xml')
    .send(resp.toString());
});

Implementa tu código actualizado en App Engine y, luego, envía un SMS a tu número de Twilio. Debes recibir un saludo como respuesta.

Obtén más información sobre Twilio

Ahora que ya utilizaste algunas funciones básicas, conoce otras características y algunas recomendaciones para compilar aplicaciones seguras y escalables:

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación del entorno estándar de App Engine para Node.js