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. Create a Content-Type request header with the value x-www-form-urlencoded.

  2. Set the Request Body Template in the UI, or requestTemplate in JSON or Terraform with the parameters as key-value pairs separated by ampersand (&). For example, key1=value1&key2=value2.

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

  3. Use $esc.uriEncode() around values or variables that contain any URL reserved characters, such as / ? : @ – . _ ! ~ $ & ‘ ( ) * + , ; =.

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"
	}
}
Note: To protect from injection attacks, always use the $esc.uriEncode() function with the user input. Because the data actions cannot automatically escape the user input with special characters, you have to use the function where applicable for security purposes. Though the data comes from an entity that is invoked includes Architect or Script, escaping must be done when handling the URLs and URL forms.

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