URI-Formularkodierung (URL) für Datenaktionen

Notiz : Dieser Artikel gilt für die Datenaktionsintegrationen Function, Genesys Cloud, Google, Microsoft Dynamics 365, Salesforce, Web Services 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 einContent-Type Request-Header mit dem Wertx-www-form-urlencoded .

  2. Legen Sie die Anforderungstext-Vorlage in der Benutzeroberfläche oderrequestTemplate in JSON oder Terraform mit den Parametern als Schlüssel-Wert-Paare, getrennt durch ein Et-Zeichen (&). Zum Beispiel,key1=value1&key2=value2 .

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

  3. Verwenden$esc.uriEncode() um Werte oder Variablen, die für URLs reservierte Zeichen enthalten, wie etwa / ? : @ – . _ ! ~ $ & ' ( ) * + , ; =.

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"
	}
}
Notiz : Zum Schutz vor Injektionsangriffen verwenden Sie immer die$esc.uriEncode() Funktion mit der Benutzereingabe. Da die Datenaktionen die Benutzereingaben nicht automatisch mit Sonderzeichen maskieren können, müssen Sie aus Sicherheitsgründen ggf. die Funktion verwenden. Obwohl die Daten von einer aufgerufenen Entität wie Architect oder Script stammen, muss beim Verarbeiten der URLs und URL-Formulare eine Escape-Sequenz verwendet werden.

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