URI-Formularkodierung (URL) für Datenaktionen
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:
-
Erstellen Sie einen
Content-Type
Anfrage-Header mit dem Wertx-www-form-urlencoded
. -
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. -
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" } }
$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.