Las plantillas de autenticación estarán disponibles en la India el 1 de julio de 2024.
Si tu aplicación para móviles ofrece a los usuarios la opción de recibir contraseñas de un solo uso o códigos de verificación mediante WhatsApp, debes usar una plantilla de autenticación.
Las plantillas de autenticación constan de lo siguiente:
Los botones de relleno automático con un toque son la solución preferida, ya que ofrecen la mejor experiencia de usuario. Sin embargo, actualmente, los botones de relleno automático con un toque solo se admiten en Android y requieren cambios adicionales en el código de la aplicación.
Consulta las normas adicionales para saber cuándo procede usar las plantillas de autenticación.
Las plantillas de autenticación incluyen un botón que permite el relleno automático con un toque.
Cuando un usuario de WhatsApp toca el botón de relleno automático, el cliente de WhatsApp activa una actividad que abre tu aplicación y entrega la contraseña o el código.
Consulta Plantillas de autenticación de relleno automático con un toque para aprender a usarlas.
Las plantillas de autenticación de copia de código permiten enviar a los usuarios una contraseña o un código de un solo uso junto con un botón para copiar el código.
Cuando un usuario de WhatsApp toca el botón para copiar el código, el cliente de WhatsApp copia la contraseña o el código al portapapeles del dispositivo. Después, el usuario puede cambiar a tu aplicación y pegar la contraseña o el código en ella.
Consulta Plantillas de autenticación de copia de código para aprender a usarlas.
Las plantillas de autenticación por pulsación cero permiten a los usuarios recibir contraseñas o códigos de un solo uso mediante WhatsApp sin tener que salir de tu aplicación.
Cuando un usuario de la aplicación solicita una contraseña o un código y tú lo entregas mediante una plantilla de autenticación por pulsación cero, el cliente de WhatsApp transmite la contraseña o el código incluidos. Después, tu aplicación puede capturarlos con un receptor de transmisiones.
Consulta Plantillas de autenticación por pulsación cero para aprender a usarlas.
Consulta, asimismo, Prácticas recomendadas para autenticar a los usuarios a través de WhatsApp.
Si no podemos entregar un mensaje a un usuario de WhatsApp, seguiremos intentando entregar el mensaje durante un periodo de tiempo que se conoce como duración.
Los mensajes tienen una duración predeterminada de 30 días, pero las plantillas de autenticación recién creadas tienen una duración predeterminada de 10 minutos.
Si no podemos entregar una plantilla de autenticación durante un periodo de tiempo que supere su duración, dejaremos de intentarlo y eliminaremos el mensaje. Si el tiempo que transcurre desde que realizas la solicitud de envío del mensaje de la plantilla de autenticación supera la duración y no recibes ningún webhook, debes suponer que se ha eliminado.
Para invalidar la duración predeterminada al crear una plantilla de autenticación, incluye la propiedad message_send_ttl_seconds
con un valor establecido entre 60
y 600
segundos.
Las plantillas existentes creadas antes de que esta funcionalidad estuviera disponible tienen una duración de 30 días. Si quieres, puedes editar una plantilla existente e invalidar su duración estableciendo su propiedad message_send_ttl_seconds
.
También puedes establecer la propiedad message_send_ttl_seconds
de una plantilla de autenticación en -1
. Esta acción establecerá su duración en 30 días.
Te recomendamos que establezcas una duración para todas las plantillas de autenticación, preferiblemente igual o inferior al tiempo de caducidad de tu código, para asegurarte de que los clientes solo reciban un mensaje cuando el código todavía se pueda utilizar.
Ten en cuenta que podría producirse un ligero retraso en la entrega del webhook de mensaje con error, así que tal vez te interese añadir un pequeño búfer al inferir una eliminación.
Usa la API de nube o la API local para enviar plantillas de autenticación aprobadas en mensajes de plantilla.
Puedes generar vistas previas del texto de las plantillas de autenticación en varios idiomas que incluyan o excluyan la cadena de la recomendación de seguridad y la cadena de la caducidad del código con el extremo Cuenta de WhatsApp Business > Vistas previas de plantillas de mensajes.
GET /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_template_previews ?category=AUTHENTICATION, &language=<LANGUAGE>, // Optional &add_security_recommendation=<ADD_SECURITY_RECOMMENDATION>, // Optional &code_expiration_minutes=<CODE_EXPIRATION_MINUTES>, // Optional &button_types=<BUTTON_TYPES> // Optional
Marcador de posición | Descripción | Ejemplo de valor |
---|---|---|
Lista separada por comas | Opcional. Lista separada por comas de los códigos de idioma y configuración regional de las versiones de idioma que quieres que se devuelvan. Si se omite, se devolverán las versiones de todos los idiomas admitidos. |
|
Booleano | Opcional. Se establece en Si se omite, la cadena de la recomendación de seguridad no se incluirá. |
|
Entero de 64 bits | Opcional. Se establece en un entero si quieres que se incluya la cadena del pie de página de la caducidad del código en la respuesta. Si se omite, la cadena del pie de página de la caducidad del código no se incluirá. El valor indica el número de minutos que faltan hasta que el código caduque. Mínimo |
|
Lista de cadenas separadas por comas | Obligatorio. Lista de cadenas separadas por comas que indica el tipo de botón. Si se incluye, la respuesta incluirá el texto de cada botón en la respuesta. En el caso de las plantillas de autenticación, este valor debe ser |
|
curl 'https://graph.facebook.com/v17.0/102290129340398/message_template_previews?category=AUTHENTICATION&languages=en_US,es_ES&add_security_recommendation=true&code_expiration_minutes=10&button_types=OTP' \ -H 'Authorization: Bearer EAAJB...'
{ "data": [ { "body": "*{{1}}* is your verification code. For your security, do not share this code.", "buttons": [ { "autofill_text": "Autofill", "text": "Copy code" } ], "footer": "This code expires in 10 minutes.", "language": "en_US" }, { "body": "Tu código de verificación es *{{1}}*. Por tu seguridad, no lo compartas.", "buttons": [ { "autofill_text": "Autocompletar", "text": "Copiar código" } ], "footer": "Este código caduca en 10 minutos.", "language": "es_ES" } ] }
Usa el extremo Cuenta de WhatsApp Business > Insertar plantillas de mensajes para actualizar o crear plantillas de autenticación de forma masiva en varios idiomas que incluyan o excluyan las advertencias opcionales de seguridad y caducidad.
Si una plantilla ya existe con un nombre y un idioma coincidentes, se actualizará con el contenido de la solicitud; de lo contrario, se creará una nueva plantilla.
POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/upsert_message_templates
{ "name": "<NAME>", "languages": [<LANGUAGES>], "category": "AUTHENTICATION", "components": [ { "type": "BODY", "add_security_recommendation": <ADD_SECURITY_RECOMMENDATION> // Optional }, { "type": "FOOTER", "code_expiration_minutes": <CODE_EXPIRATION_MINUTES> // Optional }, { "type": "BUTTONS", "buttons": [ { "type": "OTP", "otp_type": "<OTP_TYPE>", "package_name": "<PACKAGE_NAME>", // One-tap buttons only "signature_hash": "SIGNATURE_HASH>", // One-tap buttons only } ] } ] }
Se admiten todas las propiedades de creación de plantillas excepto las siguientes:
language
no se admite. En su lugar, usa languages
y establece el valor en una matriz de cadenas de códigos de idioma y configuración regional. Por ejemplo: ["en_US","es_ES","fr"]
.text
no se admite.autofill_text
no se admite.Este ejemplo crea tres plantillas de autenticación en inglés, español y francés con botones para copiar el código. Cada plantilla se denomina “authentication_code_copy_code_button” e incluye la recomendación de seguridad y la hora de caducidad.
curl 'https://graph.facebook.com/v17.0/102290129340398/upsert_message_templates' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer EAAJB...' \ -d ' { "name": "authentication_code_copy_code_button", "languages": ["en_US","es_ES","fr"], "category": "AUTHENTICATION", "components": [ { "type": "BODY", "add_security_recommendation": true }, { "type": "FOOTER", "code_expiration_minutes": 10 }, { "type": "BUTTONS", "buttons": [ { "type": "OTP", "otp_type": "COPY_CODE" } ] } ] }'
Este ejemplo (1) actualiza una plantilla existente con el nombre “authentication_code_autofill_button” y el idioma “en_US” y (2) crea dos nuevas plantillas de autenticación en español y francés con botones para rellenar automáticamente con un toque. Las dos plantillas recién creadas se denominan “authentication_code_autofill_button” e incluyen la recomendación de seguridad y la hora de caducidad.
curl 'https://graph.facebook.com/v17.0/102290129340398/upsert_message_templates' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer EAAJB...' \ -d ' { "name": "authentication_code_autofill_button", "languages": ["en_US","es_ES","fr"], "category": "AUTHENTICATION", "components": [ { "type": "BODY", "add_security_recommendation": true }, { "type": "FOOTER", "code_expiration_minutes": 15 }, { "type": "BUTTONS", "buttons": [ { "type": "OTP", "otp_type": "ONE_TAP", "package_name": "com.example.luckyshrub", "signature_hash": "K8a%2FAINcGX7" } ] } ] }'
{ "data": [ { "id": "954638012257287", "status": "APPROVED", "language": "en_US" }, { "id": "969725527415202", "status": "APPROVED", "language": "es_ES" }, { "id": "969725530748535", "status": "APPROVED", "language": "fr" } ] }
Consulta nuestra aplicación de ejemplo de contraseña de un solo uso (OTP) de WhatsApp para Android en GitHub. La aplicación de ejemplo ofrece una demostración de cómo enviar y recibir contraseñas y códigos de un solo uso mediante la API, cómo integrar los botones de relleno automático con un toque y de copia de código, cómo crear plantillas y cómo poner en marcha un servidor de ejemplo.