このドキュメントでは、Google Chat で 関連付けられます。Fleet Engine では、次の 2 つの方法でタスクを検索できます。
タスクを検索する: 次の ID でタスクを検索できます。
- タスク ID: フル機能のアクセス権があるフリート オペレーターなどのユーザーが使用 タスクデータのビューを表示します。
- トラッキング ID: クライアント ソフトウェアで限定的な情報提供のために使用されます。 通知します。
タスク ID とタスク トラッキング ID の違いを理解してください。これらは同じではありません。スケジュール設定されたタスク ガイドの基本的なタスク フィールドをご覧ください。
List tasks: タスクへの幅広いアクセス権。信頼できるユーザーのみを対象としています。
タスクを検索する
このセクションでは、タスク ID またはトラッキング ID でタスクを検索する方法について説明します。次の要件があります。
トラッキング ID によるルックアップは、公開設定のルールに準拠している必要があります。 追跡対象オブジェクトの公開設定ルールをご覧ください。
できるだけ狭いトークンを使用して、セキュリティ リスクを制限します。たとえば Delivery Consumer Token を使用すると、すべての呼び出しが そのエンドユーザーに関連する情報のみを表示します。 荷物を受け取れます。Fleet Engine は、レスポンス内の他のすべての情報を除去します。トークンの詳細については、JSON Web Token をご覧ください。
タスク ID でタスクを検索する
タスクは、gRPC を使用するか、サーバー環境からタスク ID で検索できます。 REST。次の例は、Java gRPC ライブラリまたは REST リクエストを使用して GetTask を呼び出す方法を示しています。
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8597549";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task request
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
GetTaskRequest getTaskRequest = GetTaskRequest.newBuilder() // No need for the header
.setName(taskName)
.build();
try {
Task task = deliveryService.getTask(getTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<taskId>
- <id> は、タスクの一意の識別子です。
- <taskId> は、検索するタスクの ID です。
- リクエスト ヘッダーには、次の値を含む Authorization フィールドが含まれている必要があります。 Bearer <token>。<token> はサーバーによって発行されます。 サービス アカウントのロールで説明されているガイドラインに従う。 JSON Web Token。
- リクエストの本文は空にする必要があります。
- 検索が成功すると、レスポンスの本文にタスク エンティティが含まれます。
curl
コマンドの例:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}"
トラッキング ID でタスクを検索
次の例は、配送トラッキング ID でタスクを検索する方法を示しています。
GetTaskTrackingInfo
への gRPC または HTTP REST 呼び出しを使用します。
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
GetTaskTrackingInfoRequest getTaskTrackingInfoRequest = GetTaskTrackingInfoRequest.newBuilder() // No need for the header
.setParent(parent)
.setTrackingId(TRACKING_ID)
.build();
try {
TaskTrackingInfo taskTrackingInfo = deliveryService.getTaskTrackingInfo(getTaskTrackingInfoRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/taskTrackingInfo/<tracking_id>
<tracking_id> は、タスクに関連付けられたトラッキング ID です。
リクエスト ヘッダーには、値が Bearer <token> の Authorization フィールドを含める必要があります。ここで、<token> には正しいサービス アカウントのロールが含まれます。サービス アカウントのロールをご覧ください。
検索が成功すると、レスポンスの本文に taskTrackingInfo エンティティが含まれます。
curl
コマンドの例:
# Set JWT, PROJECT_ID, and TRACKING_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/taskTrackingInfo/${TRACKING_ID}"
タスクの一覧表示
タスクを一覧表示するには、タスクへの幅広いアクセス権をリクエストします。リスティング タスクは、信頼できるユーザーのみを対象としています。リストタスク リクエストを行う場合は、Delivery Fleet リーダーまたは Delivery 管理者の認証トークンを使用します。詳細については、サービス アカウントのロールをご覧ください。 情報です。
リストをページ分割する
タスクリストはページネーションされます。ページサイズは、リストタスク リクエストで指定できます。ページサイズが指定されている場合、返されるタスクの数は次の値以下になります サイズを超えることはありません。ページサイズが存在しない場合は、妥当なデフォルト 使用されます。リクエストされたページサイズが内部最大値を超えている場合、 内部の最大値が使用されます
タスクリストには、結果の次のページを読み取るためのトークンを含めることができます。宛先 次のページを取得する場合は、同じリクエストをページトークンとともに再発行します。 返されたページトークンが空の場合は、それ以上のタスクを実行できません。 使用します。
タスクを一覧表示する際のフィールド
Fleet Engine は、タスクを一覧表示するときに次のフィールドを削除します。
VehicleStop.planned_location
VehicleStop.state
VehicleStop.TaskInfo.taskId
Google API 改善提案に基づいて、次のフィールド形式を使用します。
フィールド タイプ | 形式 | 例 |
---|---|---|
タイムスタンプ | RFC-3339 | task_outcome_time = 2022-03-01T11:30:00-08:00 |
所要時間 | 後に s が続く秒数 |
task_duration = 120s |
列挙型 | 文字列 | state = CLOSED AND type = PICKUP |
場所 | point.latitude 、point.longitude |
planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0 |
表示されたタスクをフィルタする
リストされたタスクは、ほとんどのタスク プロパティでフィルタできます。フィルタクエリの構文については AIP-160 をご覧ください。フィルタクエリを指定しないと、すべてのタスクが一覧表示されます。
次の表に、フィルタリングに使用できる有効なタスク プロパティを示します。
リストをフィルタリングするためのタスク プロパティ | |
---|---|
|
|
フィルタクエリ演算子の完全なリストについては、AIP-160 をご覧ください。
タスクの例を一覧表示する
次の例は、Java gRPC ライブラリと ListTasks
への HTTP REST 呼び出しの両方を使用して、deliveryVehicleId
とタスク属性のタスクを一覧表示する方法を示しています。
成功を示すレスポンスは空でもかまいません。空のレスポンスは、指定された deliveryVehicleId
にタスクが関連付けられていないことを示します。
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
ListTasksRequest listTasksRequest = ListTasksRequest.newBuilder() // No need for the header
.setParent(parent)
.setFilter("delivery_vehicle_id = 123 AND attributes.foo = true")
.build();
try {
ListTasksResponse listTasksResponse = deliveryService.listTasks(listTasksRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks
一覧表示されたタスクにフィルタを適用するには、URL エスケープされたフィルタクエリを値として指定した「filter」URL パラメータを指定します。
リクエスト ヘッダーには、次の値を含む Authorization フィールドが含まれている必要があります。 Bearer <token>(<token> が正しいサービスを含む) 付与します。サービス アカウントのロールをご覧ください。
ルックアップが成功すると、レスポンスの本文は次の構造になります。
// JSON representation
{
"tasks": [
{
object (Task)
}
],
"nextPageToken": string,
"totalSize": integer
}
curl
コマンドの例:
# Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?filter=state%20%3D%20OPEN%20AND%20delivery_vehicle_id%20%3D%20${VEHICLE_ID}"