Dialogflow API の一部のメソッドは長時間実行オペレーションを返します。これらのメソッドは非同期で、メソッドがレスポンスを返すときにオペレーションが完了していない場合があります。オペレーションのステータスを確認し、キャンセルすることもできます。
オペレーションのステータスを取得する
以下に、オペレーションのステータスをポーリングする方法を示します。確認するオペレーションが多い場合は、呼び出しをレート制限するか、list メソッドを使用してください。
REST
Operations
タイプの get
メソッドを呼び出します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: GCP プロジェクト ID
- OPERATION_ID: オペレーション ID
- API_VERSION:
v2
またはv2beta1
HTTP メソッドと URL:
GET https://dialogflow.googleapis.com/API_VERSION/projects/my-gcp-project/operations/OPERATION_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "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, ... }
オペレーションが完了すると、SUCCESSFUL
の state
値が戻されます。
オペレーションの一覧表示とキャンセル
特定のオペレーションの取得に加えて、オペレーションの一覧表示およびキャンセルができます。Operations
タイプの list
メソッドと cancel
メソッドをご覧ください。
list
の結果には、現在のタスクとは無関係のオペレーションが含まれている可能性があるため、必ず結果をフィルタしてください。