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:
-
Create a
Content-Type
request header with the valuex-www-form-urlencoded
. -
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
.Hinweis: Der Anfragekörper ist kein JSON, sondern eine als URL-Abfrageargumente formatierte Zeichenfolge. -
Use
$esc.uriEncode()
around values or variables that contain any URL reserved characters, such as / ? : @ – . _ ! ~ $ & ‘ ( ) * + , ; =.
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()
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. Weitere Informationen zu den Integrationen finden Sie unter Über die Integrationen von Datenaktionen.