Ejemplo: Controlador de entrega de contraseña simultánea personalizada
En este ejemplo, un controlador de entrega de contraseña simultánea personalizada (OTP) llama a Telesign para enviar un mensaje personalizado a un usuario externo de Salesforce.
Ediciones necesarias
| Disponible en: Salesforce Classic (no disponible en todas las organizaciones) y Lightning Experience |
| Disponible en: Professional Edition, Enterprise Edition, Unlimited Edition y Developer Edition |
Esta muestra de código es solo para demostración. Asegúrese de evaluar y probar cualquier código antes de implementarlo en producción.
El método sendOneTimePassword en el controlador envía una solicitud POST HTTP a la API de mensajería de Telesign, https://rest-ww.telesign.com/v1/messaging. La solicitud puede incluir estos encabezados de Telesign admitidos.
| Encabezado de Telesign | Descripción |
|---|---|
Accept
|
Especifica el formato de respuesta que Salesforce espera. |
Content-Type
|
Especifica el formato de la solicitud. |
Authorization
|
Autentica la solicitud incluyendo el Id. de cliente y la clave de API de Telesign. El Id. de cliente y la clave de API se adjuntan entre sí en el formato customer ID:API key. El valor resultante está codificado con Base64. |
El cuerpo de la solicitud incluye estos parámetros de Telesign admitidos. Consulte Enviar un mensaje SMS en el sitio de documentación de Telesign.
| Parámetro Telesignar | Descripción |
|---|---|
is_primary
|
Indica que Telesign es el proveedor principal. |
phone_number
|
El número de teléfono del usuario externo. Aunque el número de teléfono se puede asociar con la cuenta del usuario, no se verifica necesariamente. |
message
|
El contenido del mensaje para enviar al usuario externo. En este ejemplo, el mensaje incluye texto para introducir la OTP personalizada, la OTP en sí y el texto predeterminado para el proveedor de SMS de Salesforce. |
message_type
|
Especifica que el mensaje incluye una OTP. |
Si se realiza correctamente, Telesign envía la OTP de Salesforce al usuario externo. El gestor procesa la respuesta y devuelve un Auth.CustomOneTimePasswordDeliveryResult que indica si la solicitud se realizó correctamente.
global class TelesignMessaging implements Auth.CustomOneTimePasswordDeliveryHandler{
global Auth.CustomOneTimePasswordDeliveryResult sendOneTimePassword(Id userId, String
phoneNumber, String oneTimePassword, String defaultText, Id networkId, String experienceId)
{ //Send the message from Telesign
HttpRequest request = new HttpRequest();
//The commented-out code on the next line isn't necessary if you use named credentials
//request.setEndpoint('https://rest-ww.telesign.com/v1/messaging');
request.setEndpoint('callout:Telesign_SMS_Named');
request.setMethod('POST');
String requestBody = 'is_primary=true&phone_number=' + phoneNumber +
'&message='+'Custom OTP%20'+ oneTimePassword+'; '+defaultText+'&message_type=OTP';
request.setHeader('accept', 'application/json');
request.setHeader('content-type', 'application/x-www-form-urlencoded');
//The commented-out code on the next line isn't necessary if you use named credentials
//request.setHeader('authorization', 'Basic <Base64-encoded Telesign customer ID:API key>');
request.setBody(requestBody);
HttpResponse response = new Http().send(request);
// Handle the response as needed
return Auth.CustomOneTimePasswordDeliveryResult.SUCCESS;
}
}

