Certaines méthodes de l'API Dialogflow renvoient une opération de longue durée. Ces méthodes sont asynchrones, et l'opération risque de ne pas être terminée lorsque la méthode renverra une réponse. Vous pouvez vérifier l'état ou annuler des opérations.
Obtenir l'état d'une opération
Pour interroger l'état d'une opération, procédez comme suit : Si vous avez de nombreuses opérations à vérifier, vous devez limiter vos appels ou utiliser la méthode list à la place.
Appelez la méthode get
pour le type Operations
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet GCP
- OPERATION_ID : ID d'opération
- API_VERSION :
v2
ouv2beta1
Méthode HTTP et URL :
GET https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project:PROJECT_ID " \
"https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID "
PowerShell (Windows)
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID " }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID " | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID /operations/some-operation-name-OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.dialogflow.API_VERSION .SomeOperationType", "state": "DONE" }, "done": true, ... }
Lorsque l'opération est terminée, la valeur SUCCESSFUL
est renvoyée pour state
.
Répertorier et annuler des opérations
En plus d'obtenir une opération spécifique, vous pouvez répertorier et annuler des opérations.
Consultez les méthodes list
et cancel
pour le type Operations
.
Les résultats list
peuvent contenir des opérations sans rapport avec votre tâche actuelle. Veillez donc à filtrer les résultats.