Usa servicios de voz y SMS mediante Twilio

Twilio está impulsando el futuro de las comunicaciones empresariales y habilita a los desarrolladores a incorporar voz, VoIP y mensajes en las aplicaciones. Los desarrolladores virtualizan todas las infraestructuras necesarias en un entorno global basado en la nube y lo exponen a través de la plataforma de API de comunicaciones de Twilio. Es muy sencillo compilar y escalar aplicaciones. Disfruta de la flexibilidad de los precios de pago por uso y aprovecha la confiabilidad 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 te permite hacer llamadas VoIP desde cualquier teléfono celular, 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 realizan actualizaciones.

Twilio es un servicio de pago por uso. No hay tarifas iniciales y puedes cerrar tu cuenta en cualquier momento. Puedes encontrar más información en Precios de Twilio.

Plataforma

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

TwiML

TwiML es un conjunto de instrucciones que puedes usar para decirle a Twilio qué hacer cuando recibes una llamada o un SMS. Cuando alguien te llama o te envía un SMS a uno de tus números de Twilio, Twilio buscará la URL asociada con ese número de teléfono y le hará una solicitud. Twilio leerá las instrucciones de TwiML en esa 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 su teclado
  • <Message> - enviar un mensaje

Obtén más información sobre otros verbos y capacidades 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 darte ciertos lujos, como iniciar llamadas salientes y enviar mensajes de texto.

Como la API se basa en principios de REST, es muy fácil escribir y probar aplicaciones. Puedes usar tu navegador para acceder a las URL y usar prácticamente cualquier cliente HTTP en cualquier lenguaje de programación a fin de interactuar con la API. Si deseas obtener más información, consulta la API de REST de Twilio.

Cómo copiar el código de muestra

En GitHub se encuentra disponible un código de muestra completo que explica la integración con Twilio. Si quieres usar este código de muestra, cópialo en tu máquina local:

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

Configuración

Si quieres usar Twilio para recibir una llamada, enviar o recibir un SMS, haz lo siguiente:

  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
    

Cómo recibir una llamada

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 implementarlo, puedes enviar una solicitud HTTP POST a http://your-app-id.appspot.com/call/receive, que muestra el texto siguiente:

    <?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 la URL de Voice en la página Números de tu Cuenta de Twilio.

  3. Ahora llama a tu número de Twilio. Deberás escuchar una voz que responde "Saludos de parte de Twilio". Cuando realices llamadas, Twilio rastreará tu 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', async (req, res, next) => {
  const {to} = req.query;
  if (!to) {
    res
      .status(400)
      .send('Please provide an number in the "to" query string parameter.');
    return;
  }

  try {
    await twilioClient.messages.create({
      to: to,
      from: TWILIO_NUMBER,
      body: 'Hello from Google App Engine',
    });
    res.status(200).send('Message sent.');
  } catch (err) {
    next(err);
    return;
  }
});
  1. Cambia el parámetro to para usar 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 ingresando la URL en el 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 de TwiML:

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

  const resp = new TwimlResponse();
  resp.message(`Hello, ${sender}, you said: ${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. Deberías recibir un saludo como respuesta.

Más información sobre Twilio

Ahora que ya usaste algunas funciones básicas, obtén más información sobre las funciones 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