Codificación de formularios URI (URL) para acciones de datos

Nota: Este artículo se aplica a las integraciones de acciones de datos de Genesys Cloud, Google, Microsoft Dynamics 365, Salesforce, servicios web y Zendesk.

Algunas API, especialmente las de inicio de sesión, necesitan codificación de formulario URL para las solicitudes HTTP. Para configurar una acción de datos de Genesys Cloud para la codificación URI:

  1. Cree una cabecera de petición Content-Type con el valor x-www-form-urlencoded.

  2. Establezca Request Body Template en la interfaz de usuario, o requestTemplate en JSON o Terraform con los parámetros como pares clave-valor separados por ampersand (&). Por ejemplo, key1=value1&key2=value2.

    Nota: El cuerpo de la petición no es JSON, es una cadena formateada como argumentos de consulta URL.

  3. Utilice $esc.uriEncode() alrededor de valores o variables que contengan cualquier carácter reservado de URL, como / ? : @ - . ¡_ ! ~ $ & ' ( ) * + , ; =.

Ejemplo JSON

"config": { 
     "request": { 
          "requestTemplate": "grant_type=client_credentials&scope=customers_read_write&audience=$esc.uriEncode(\"https://api.example.com/v1/customers\")", 
          "headers": { 
               "Authentication": "Basic $encoding.base64(\"${credentials.clientid}:${credentials.clientSecret}\"", 
               "Content-Type": "application/x-www-form-urlencoded" 
               },
          "requestType": "POST", 
          "requestUrlTemplate": "${credentials.loginUrl}" 
       } 
   } 

El siguiente ejemplo muestra los valores de entrada del usuario que tienen los caracteres reservados:

"config": {
	"request": {
		"headers": {
			"Content-Type": "application/x-www-form-urlencoded"
		},
		"requestUrlTemplate": "https://api.example.com/v1/customers",
		"requestTemplate": "description=$esc.uriEncode(\"${input.DESCRIPTION}\")&email=$esc.uriEncode(\"${input.EMAIL}\")",
		"requestType": "POST"
	}
}
Nota: Para protegerse de los ataques de inyección, utilice siempre la función $esc.uriEncode() con la entrada del usuario. Dado que las acciones de datos no pueden escapar automáticamente de la entrada del usuario con caracteres especiales, debe utilizar la función cuando proceda por motivos de seguridad. Aunque los datos provienen de una entidad que es invocada incluye Architect o Script, el escapado debe hacerse cuando se manejan las URLs y los formularios URL.

Para obtener más información sobre las integraciones, consulte Acerca de las integraciones de acciones de datos.