Codage du formulaire URI (URL) pour les actions sur les données

Remarque :  Cet article s'applique aux intégrations Genesys Cloud, Google, Microsoft Dynamics 365, Salesforce, aux services web et aux actions de données Zendesk.

Certaines API, en particulier les API de connexion, ont besoin d'un encodage de formulaire d'URL pour les requêtes HTTP. Pour configurer une action de données Genesys Cloud pour l'encodage 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.

    Remarque : Le corps de la requête n'est pas JSON, c'est une chaîne formatée comme des arguments de requête URL.

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

Exemple 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}" 
       } 
   } 

L'exemple suivant montre les valeurs d'entrée de l'utilisateur qui ont les caractères réservés :

"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.

Pour plus d’informations sur l’intégration, voir À propos de l’intégration des actions de données Zendesk.