Alguns métodos da API Dialogflow retornam uma operação de longa duração. Esses métodos são assíncronos e a operação pode não ser concluída quando o método retornar uma resposta. Verifique o status ou cancele operações.
Receber status de operação
Veja a seguir como pesquisar o status de uma operação. Se você tiver muitas operações para verificar, limite as chamadas ou use o método list.
Chame o método get
para o tipo Operations
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: ID do projeto do GCP
- OPERATION_ID: ID da operação
- API_VERSION: é
v2
ouv2beta1
Método HTTP e URL:
GET https://dialogflow.googleapis.com/API_VERSION /projects/my-gcp-project /operations/OPERATION_ID
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
execute o seguinte comando:
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)
execute o seguinte comando:
$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
Você receberá uma resposta JSON semelhante a esta:
{ "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, ... }
Quando a operação for concluída, um valor state
de SUCCESSFUL
será retornado.
Listar e cancelar operações
Além de obter uma operação específica, é possível listar e cancelar operações.
Veja os métodos list
e cancel
para o tipo Operations
.
É possível que os resultados list
contenham operações não relacionadas à sua tarefa atual. Portanto, filtre os resultados.