Gestión de plantillas
La administración de plantillas con Verify API te permite personalizar el mensaje enviado para entregar una OTP a tus usuarios, en lugar de usar las plantillas predeterminadas de Vonage. Las plantillas personalizadas se pueden configurar para SMS, voz y RCS a través de cualquier configuración regional admitida.
Nota: Las plantillas son de sólo lectura a menos que su Account haya sido habilitado para escribir usando la Gestión de Plantillas. Póngase en contacto con el servicio de asistencia para habilitar esta función.
Estructura de plantillas
Las plantillas personalizadas se dividen en dos partes:
-
El
template- Tiene un nombre único y contiene un identificador, además de indicar si se trata de la plantilla predeterminada. Una plantilla siempre se establece como predeterminada al crearse y se puede cambiar posteriormente. -
template_fragments- Una plantilla puede tener muchos fragmentos, que son combinaciones únicas delocaleychannel; esto te permite crear plantillas personalizadas en varios idiomas para un mismo canal. Contienen un identificador, el texto de la plantilla y las marcas de tiempo de su creación y actualización.
Al crear fragmentos, puede utilizar cuatro variables estáticas dentro del texto del mensaje. La única variable obligatoria que debe contener el mensaje es el código, que se representa en el texto mediante ${code}.
Crear una plantilla
Para crear una plantilla, envía una solicitud POST al templates endpoint. En el cuerpo de la solicitud, tendrá que proporcionar un nombre para la plantilla:
curl -X POST https://api.nexmo.com/v2/verify/templates \
-H "Content-Type: application/json" \
-H "Authorization: Bearer XXXXX" \
-d '{"name": "my-template"
}'
En la respuesta, recibirá un template_id, junto con algunos enlaces que puedes utilizar para ver tu plantilla y sus fragmentos una vez creados:
{
"template_id": "8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9",
"name": "my-template",
"is_default": true,
"_links": {
"self": {
"href": "https://api.nexmo.com/v2/verify/templates/8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9"
},
"fragments": {
"href": "https://api.nexmo.com/v2/verify/templates/8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9/template_fragments"
}
}
}
La primera plantilla personalizada que cree se establecerá automáticamente como plantilla predeterminada, como indica is_default = true. Para cambiar esto, consulta Actualización de una plantilla.
A continuación, tendrás que crear fragmentos para cada configuración regional y canal en los que quieras utilizar un mensaje personalizado.
Creación de fragmentos
Para crear un fragmento, tendrá que enviar una solicitud POST al archivo template_fragments punto final. Debe sustituir :template_id con el template_id que recibió al crear su plantilla:
curl -X POST https://api.nexmo.com/v2/verify/templates/:template_id/template_fragments \
-H "Content-Type: application/json" \
-H "Authorization: Bearer XXXXX" \
-d '{
"channel": "sms",
"locale": "en-gb",
"text": "Thank you for continuing to use ${brand}! Your OTP is: ${code}"
}
En el cuerpo de esta solicitud:
channelespecifica el canal para el que es este fragmento, y debe ser uno de los siguientessms,voice, orcs.localees el código de configuración regional del idioma en el que está escrito el mensaje. Por ejemplo,en-gbes inglés (Reino Unido) yde-dees alemán.textes el mensaje que quieres enviar. Esto debe contener el${code}variable. Otras variables estáticas opcionales que puedes incluir son:${brand}- Se sustituirá por el valor del parámetro "marca" de la solicitud de verificación.${time-limit}- Será sustituido por la cantidad de tiempo (número) antes de que el código se considere caducado.${time-limit-unit}- se sustituirá por la unidad de tiempo (segundos, minutos) del importe de caducidad del código pin (time-limit).
Esta solicitud creará una plantilla de mensaje para un SMS enviado a alguien en el Reino Unido. Para crear una versión de este mensaje que se enviaría a alguien en Francia, por ejemplo, usted enviaría otra solicitud POST con el campo fr-fr y una configuración regional text mensaje:
curl -X POST https://api.nexmo.com/v2/verify/templates/:template_id/template_fragments \
-H "Content-Type: application/json" \
-H "Authorization: Bearer XXXXX" \
-d '{
"channel": "sms",
"locale": "fr-fr",
"text": "Merci de continuer à utiliser ${brand}! Votre OTP est: ${code}"
}
¿Cómo elige Verify qué plantilla utilizar?
Para determinar la plantilla que se utilizará para una solicitud, la API de Verify seguirá estos pasos:
- Una vez enviada una solicitud de Verify, la API utilizará la configuración regional especificada en la solicitud o detectará la configuración regional a la que se envía la solicitud.
- Para detectar la configuración regional, Verify utiliza el número de teléfono facilitado para determinar dónde se encuentra la persona. Por ejemplo,
447700900000se corresponderá conen-gbya que es un número del Reino Unido, mientras que847700900000se corresponderá confr-frya que es un número francés. - Si necesita que un mensaje se envíe en un idioma específico, utilice la opción
localeparámetro en tu solicitud. Esto puede resultar útil en países como Canadá, donde hay varios idiomas oficiales.
- Para detectar la configuración regional, Verify utiliza el número de teléfono facilitado para determinar dónde se encuentra la persona. Por ejemplo,
Una vez determinada la configuración regional, Verify buscará una plantilla que se ajuste a dicha configuración:
- Si has facilitado un
template_idEn tu solicitud, el sistema consultará primero esa plantilla y comprobará si has creado una plantilla personalizada para esa configuración regional y ese canal. Si existe alguna, enviará el mensaje OTP utilizando esa plantilla. - Si no existe, o si no proporcionó una
template_idEn la solicitud, Verify intentará utilizar una plantilla predeterminada para esa configuración regional.- Si has creado una plantilla personalizada, intentará utilizar una que tenga
is_defaulta verdadero. - De lo contrario, intentará utilizar una plantilla predeterminada de Vonage.
- Si has creado una plantilla personalizada, intentará utilizar una que tenga
- Si no se puede encontrar una plantilla para esa configuración regional, o si está utilizando una configuración regional no compatible con ese canal, se utilizará por defecto la opción
en_US.
A continuación se muestra el proceso completo:
Otras operaciones de plantilla
Se puede consultar información detallada sobre todas las operaciones de las plantillas en el Verify la especificación de la APIincluyendo ejemplos de solicitudes y respuestas. También se resumen a continuación:
Visualización de plantillas
Puedes ver una lista de todas las plantillas que has creado enviando una solicitud GET a este punto final:
https://api.nexmo.com/v2/verify/templates
O bien, puedes ver una plantilla concreta enviando una solicitud GET al mismo punto final con el ID de tu plantilla:
https://api.nexmo.com/v2/verify/templates/:template_id
Actualización de una plantilla
Puede actualizar el name de su plantilla, junto con si la plantilla es la plantilla por defecto cambiando la opción is_default parámetro. Para ello, envíe un PATCH envía una solicitud a este punto final, sustituyendo :template_id con el ID de la plantilla que está actualizando:
curl -X PATCH https://api.nexmo.com/v2/verify/templates/:template_id \
-H "Content-Type: application/json" \
-H "Authorization: Bearer XXXXX" \
-d '{
"name": "my-template-updated",
"is_default": false
}
Borrar una plantilla
Elimine una plantilla enviando una solicitud DELETE a este punto final, sustituyendo :template_id con el ID de la plantilla que vas a eliminar:
https://api.nexmo.com/v2/verify/templates/:template_id
Nota: Sólo puede eliminar una plantilla si no hay fragmentos adjuntos a ella.
Otras operaciones con fragmentos de plantilla
Se puede consultar información detallada sobre todas las operaciones de las plantillas en el Verify la especificación de la APINo obstante, también se resumen a continuación:
Visualización de fragmentos de plantillas
Puede listar todos los fragmentos de plantilla que ha creado para una plantilla específica enviando una solicitud GET a este punto final:
https://api.nexmo.com/v2/verify/templates/:template_id/template_fragments
Asegúrese de sustituir :template_id con el ID de la plantilla cuyos fragmentos quieras ver.
Para ver una plantilla específica, envíe una solicitud GET al mismo punto final con su ID de plantilla y su ID de fragmento de plantilla:
https://api.nexmo.com/v2/verify/templates/:template_id/template_fragments/:template_fragment_id
Actualización de un fragmento de plantilla
Puede actualizar el envío de mensajes utilizando su fragmento de plantilla actualizando el campo text parámetro. No es posible actualizar la configuración regional ni el canal.
Para ello, envíe un PATCH envía una solicitud a este punto final, sustituyendo :template_id y :template_fragment_id con su ID de plantilla y su ID de fragmento de plantilla:
curl -X PATCH https://api.nexmo.com/v2/verify/templates/:template_id/template_fragments/:template_fragment_id \
-H "Content-Type: application/json" \
-H "Authorization: Bearer XXXXX" \
-d '{
"text": "The authentication code for your ${brand} is: ${code}"
}
Cómo eliminar un fragmento de plantilla
Para eliminar un fragmento de plantilla, envía una solicitud DELETE a este punto final, sustituyendo :template_id y :template_fragment_id con su ID de plantilla y su ID de fragmento de plantilla:
https://api.nexmo.com/v2/verify/templates/:template_id/template_fragments/:template_fragment_id
Solución de problemas
Estos son algunos errores comunes que puede encontrar al intentar utilizar plantillas personalizadas:
- La Account no está habilitada: Mientras que las plantillas de lectura están disponibles para todos los usuarios, la escritura de plantillas personalizadas debe estar habilitada en su Account. Póngase en contacto con su gestor de Account o hable con el servicio de asistencia para activar esta función.
- Plantilla o fragmento existente: Cada plantilla debe tener un nombre único, y cada fragmento de esa plantilla debe ser una entrada única combinada para una configuración regional y un canal.
- Intento de eliminar una plantilla con fragmentos: No puede eliminar una plantilla si tiene fragmentos existentes. Puede utilizar la función Campos HAL para el descubrimiento en la respuesta get template para recorrer los ID de los fragmentos existentes a eliminar antes de eliminar la plantilla en sí.
- No utilizar
${code}en el texto: Al crear un fragmento, debes incluir el código dentro del texto. - Número máximo de plantillas: Hay un límite de 10 plantillas por usuario, y un intento de generar más dará lugar a un error.