URI-Formularkodierung (URL) für Datenaktionen

Hinweis: Dieser Artikel gilt für die Datenaktionsintegrationen von Genesys Cloud, Google, Microsoft Dynamics 365, Salesforce, Webdiensten und Zendesk.

Einige APIs, insbesondere Anmelde-APIs, benötigen eine URL-Formularkodierung für HTTP-Anfragen. So konfigurieren Sie eine Genesys Cloud-Datenaktion für die URI-Kodierung:

  1. Erstellen Sie einen Content-Type Anfrage-Header mit dem Wert x-www-form-urlencoded.

  2. Legen Sie das Request Body Template in der Benutzeroberfläche oder requestTemplate in JSON oder Terraform mit den Parametern als Schlüssel-Wert-Paare, getrennt durch ein &, fest. Zum Beispiel: key1=wert1&key2=wert2.

    Hinweis: Der Anfragekörper ist kein JSON, sondern eine als URL-Abfrageargumente formatierte Zeichenfolge.

  3. Verwenden $esc.uriEncode() um Werte oder Variablen, die URL-reservierte Zeichen enthalten, z. B. / ? : @ – . _ ! ~ $ & ' ( ) * + , ; =.

JSON-Beispiel

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

Das folgende Beispiel zeigt die Benutzereingabewerte, die die reservierten Zeichen enthalten:

"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"
	}
}
Hinweis: Um sich vor Injektionsangriffen zu schützen, verwenden Sie immer die $esc.uriEncode() Funktion mit der Benutzereingabe. Da die Datenaktionen die Benutzereingaben nicht automatisch mit Sonderzeichen umgehen können, müssen Sie die Funktion gegebenenfalls aus Sicherheitsgründen verwenden. Obwohl die Daten von einer aufgerufenen Entität stammen, die Architect oder Script enthält, muss bei der Verarbeitung der URLs und URL-Formulare eine Escape-Operation durchgeführt werden.

Weitere Informationen zu den Integrationen finden Sie unter Über die Integrationen von Datenaktionen.