You are viewing the Spanish (Mexico) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Calificar esta página:

TwiML™ para SMS programable

¿Qué es TwiML?

TwiML (el Twilio Markup Language) se trata de un conjunto de instrucciones que puedes utilizar para decirle a Twilio lo que debe hacer cuando recibe una llamada entrante, un SMS o un fax.

TwiML se puede generar usando una de las Bibliotecas de auxiliares de lenguaje de Twilio, o se puede escribir de forma manual para instruir a Twilio sobre qué acciones tomar en respuesta a varios eventos relacionados con SMS.

¿No envía mensajes? TwiML es más potente que Twilio Programmable SMS: consulta la documentación sobre cómo usar TwiML con Voz programable y Fax programable.

Un ejemplo básico de respuesta a SMS de TwiML

El siguiente TwiMLmanual le indicará a Twilio que responda a un SMS entrante con una respuesta de "Hello World!":

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Message><Body>Hello World!</Body></Message>
</Response>

También se puede generar el mismo TwiML utilizando los siguientes ejemplos de código. El control de redirección te permite apuntar a otro archivo TwiML del archivo actual.

Alterna entre el código en el idioma que elija y TwiML en la barra superior del visor de código:

        
        
        

        ¿Deseas crear una aplicación SMS? Nuestro inicio rápido para enviar SMS te mostrará cómo enviar, recibir y responder con SMS utilizando el idioma de tu elección.

        Cómo generar TwiML con las bibliotecas auxiliares de Twilio

        Twilio proporciona bibliotecas auxiliares para ayudarte a generar TwiML en tu idioma favorito.

        Por ejemplo, a continuación se presenta el código que muestra cómo enviar dos mensajes únicos, uno tras otro, mediante bibliotecas auxiliares. Selecciona el idioma que desees para ver cómo se realiza:

              
              
              

              Solicitud de Twilio a tu aplicación

              Cuando un mensaje llega a tu número de teléfono de Twilio, Twilio envía una solicitud a tu aplicación web (como un navegador web) usando la URL de webhook que has especificado. Para obtener más información sobre la petición de Twilio, incluidos los parámetros enviados a tu solicitud, consulta nuestra guía sobre la Solicitud de Twilio a tu URL de Webhook.

              Formatos de datos

              Números de teléfono

              Todos los números de teléfono en solicitudes de Twilio están en formato E.164 si es posible. Por ejemplo, (415) 555-4345 vendría como “+14155554345”. Sin embargo, en ocasiones hay casos en los que Twilio no puede normalizar un ID de llamada entrante a E.164. En estas situaciones, Twilio informará sobre la cadena de ID de llamada sin procesar.

              Fechas y horas

              Todas las fechas y horas en las solicitudes de Twilio son GMT en formato RFC 2822. Por ejemplo, a las 6:13 p. m. PDT del 19 de agosto del 2010 sería “Fri, 20 Aug 2010 01:13:42 +0000”

              “STOP” y cancelar la suscripción

              Twilio manejará las cancelaciones de suscripciones en todos los números de teléfono de código largo de acuerdo con los estándares de la industria.

              Las palabras clave de cancelación de suscripción se pasan a tu aplicación para notificarte que un usuario ha optado por cancelar la suscripción. Todos los mensajes futuros al usuario arrojarán un error. Las palabras clave “Start” y “Yes” también se transferirán a la aplicación y a los usuarios que vuelvan a participar.

              Cuando un usuario ha optado por no recibir un número de teléfono que pertenece a un servicio de mensajería, el usuario también ha optado por no recibir todos los mensajes enviados desde ese servicio de mensajería en particular.

              PARÁMETRO DESCRIPCIÓN
              OptOutType Cadena que indica si el mensaje es un mensaje de STOP, HELP o START.

              Responder a Twilio

              Cuando un mensaje llega a uno de tus números de Twilio, Twilio hace una solicitud HTTP a la URL del mensaje configurada para ese número.

              Como respuesta a ello, puedes decirle a Twilio qué hacer en respuesta al mensaje. Puedes configurar tus URL de número aquí.

              Twilio es un cliente HTTP de buen comportamiento

              Twilio se comporta como un navegador web, así que no hay nada nuevo que aprender.

              • Cookies: Twilio acepta cookies HTTP y las incluirá en cada solicitud, al igual que un navegador web normal.
              • Redirecciones: Twilio sigue las redirecciones HTTP (códigos de estado HTTP 301, 307, etc.), igual que un navegador web normal.
              • Almacenamiento en caché: Twilio almacenará en caché los archivos cuando los encabezados HTTP lo permitan (a través de ETag y los encabezados modificados por última vez) y cuando el método HTTP sea GET, como un navegador web normal.

              Cookies

              Twilio mantendrá el estado de las cookies a través de múltiples mensajes SMS entre los mismos dos números de teléfono. Esto te permite tratar los mensajes separados como una conversación y almacenar datos sobre la conversación, como un identificador de sesión, en las cookies para referencia futura. Twilio vencerá las cookies de esa conversación después de cuatro horas de inactividad.

              Twilio entiende los tipos MIME

              Twilio hace lo correcto cuando tu aplicación responde con diferentes tipos MIME.

              TIPO DE MIME COMPORTAMIENTO
              text/xml, application/xml, text/html Twilio interpreta el documento devuelto como un conjunto de instrucciones XML de TwiML. Esta es la respuesta más utilizada.
              text/plain Twilio devuelve el contenido del archivo de texto al remitente en forma de mensaje.

              Cómo funciona el intérprete TwiML de Twilio

              Cuando tu aplicación responde a una solicitud Twilio con XML, Twilio ejecuta tu documento mediante el intérprete TwiML. Para que las cosas sean sencillas, el intérprete TwiML solo entiende unos pocos elementos XML con nombres especiales. En el lenguaje TwiML, se dividen en tres grupos: el elemento <Response> raíz, "verbs" y "nouns." Discutimos cada grupo a continuación.

              El intérprete comienza en la parte superior de tu documento TwiML y ejecuta instrucciones ("verbs") en orden descendente. Como ejemplo, el siguiente fragmento de mensaje TwiML envía "Hello World" como respuesta de mensaje al remitente antes de redirigir el control al TwiML en https://demo.twilio.com/welcome/sms.

              <?xml version="1.0" encoding="UTF-8" ?>
              <Response>
                  <Message>Hello World!</Message>
                  <Redirect>https://demo.twilio.com/welcome/sms</Redirect>
              </Response>

              Puedes proporcionar varios verbos <Message> en un documento TwiML para enviar varios mensajes. Por ejemplo:

              <?xml version="1.0" encoding="UTF-8" ?>
              <Response>
                  <Message>This is message 1 of 2.</Message>
                  <Message>This is message 2 of 2.</Message>
              </Response>

              Los elementos TWIML ("verbs" y "nouns") tienen nombres que distinguen entre mayúsculas y minúsculas. Por ejemplo, si utilizas <message> en vez de <Message>, se producirá un error. Los nombres de atributo también distinguen entre mayúsculas y minúsculas y camelCased. Puedes utilizar los comentarios XML de forma libre; el intérprete los ignora.

              El elemento de <Response>

              El elemento raíz del XML Markup de Twilio es el elemento<Response>. En cualquier respuesta TwiML a una solicitud Twilio, todos los elementos de verbo deben estar anidados dentro de este elemento. Cualquier otra estructura se considera no válida.

              Ejemplo

              <?xml version="1.0" encoding="UTF-8"?>
              <Response>
                  <Message>I'm hungry!</Message>
              </Response>

              Verbos de mensajería TwiML

              La mayoría de los elementos XML de un documento TwiML son verbos TwiML. Los nombres de los verbos distinguen entre mayúsculas y minúsculas, al igual que los nombres de sus atributos. Solo hay un verbo principal de mensaje TwiML y un verbo secundario, con documentación detallada sobre cada uno. El verbo central es:

              <Message>: Enviar un mensaje en respuesta al mensaje entrante.

              Hay ciertas situaciones en las que el intérprete de TwiML puede no llegar a los verbos de un documento de TwiML porque el flujo de control ha pasado a un documento diferente. Esto suele ocurrir cuando se define el atributo “action” de un verbo.

              Por ejemplo, si un <Message> va seguido de un <Redirect>, no se puede acceder a <Redirect> si la URL de “action” del verbo del <Message> se establece. En este caso, el flujo de sesión de SMS continúa con el TwiML recibido en su respuesta a la solicitud de URL de “action”.

              Los siguientes verbos pueden afectar al flujo de control: <Message> y <Redirect>

              Sustantivos TwiML

              Un sustantivo en TwiML es cualquier cosa anidada dentro de un verbo que no es en sí mismo un verbo. Es sobre lo que el verbo está actuando. Generalmente, es solo texto. Pero a veces, como en el caso de <Message> con sus sustantivos de <Media> y <Body>, hay elementos XML anidados que son sustantivos.

              Devoluciones de llamada de estado

              Puedes utilizar las devoluciones de llamada de estado para que Twilio se comunique con tu aplicación cuando el estado de un mensaje haya cambiado.

              Las devoluciones de llamada de estado no controlan el flujo de la aplicación, por lo que no es necesario devolver TwiML; sin embargo, se recomienda que respondas a las devoluciones de llamada de estado con un 204 No Content o un 200 OK con Content-Type: text/xml y un <Response/> vacío en el cuerpo. Si no se responde de forma correcta, se producirán advertencias en el depurador.

              Calificar esta página:

              ¿Necesitas ayuda?

              Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.

                    
                    
                    

                    Gracias por tus comentarios.

                    Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

                    Enviando tus comentarios…
                    🎉 Gracias por tus comentarios.
                    Se produjo un error. Inténtalo de nuevo.

                    Gracias por tus comentarios.

                    ¡Recomiéndanos y gana USD 10 en 3 pasos sencillos!

                    Paso 1

                    Obtén un enlace

                    Obtén un enlace gratuito de referencia personal aquí

                    Paso 2

                    Regala USD 10

                    Tu usuario se registra y actualiza mediante el enlace

                    Paso 3

                    Obtén USD 10

                    1250 SMS gratuitos
                    O 1000 minutos gratuitos de voz
                    O 12 000 chats
                    O más