Bu dokümanda, bir emin olmanız gerekir. Fleet Engine, görevleri bulmanın iki yolunu destekler:
Görev arama: Görevleri aşağıdaki kimliklere göre arayabilirsiniz:
- Görev Kimliği: Tam erişime sahip filo operatörleri gibi kullanıcılar tarafından kullanılır bir görünümünü elde edersiniz.
- İzleme Kimliği: istemci yazılımınız tarafından sınırlı bilgi sağlamak için kullanılır örneğin evlerinde paket olması bekleniyordu.
Görev kimliği ile görev arasındaki farkı anladığınızdan emin olun izleme kimliği. Ancak bunlar aynı değildir. Temel görev alanları Planlanmış görev rehberi.
Görevleri listeleme: Yalnızca güvenilir kullanıcılara yönelik, görevlere geniş kapsamlı erişim.
Görev arama
Bu bölümde, görevleri görev kimliğine veya izleme kimliğine göre nasıl arayacağınız açıklanmaktadır. İçinde şu koşulları karşılamanız gerekir:
İzleme kimliğine göre aramalar, görünürlük kurallarına uygun olmalıdır İzlenen nesneler için görünürlük kuralları bölümünde belirtildiği üzere.
Güvenlik risklerini sınırlandırmak için mümkün olan en dar jetonu kullanın. Örneğin, Teslimat Tüketici Jetonu kullanırsanız tüm aramalar kargo şirketi veya e-posta adresi gibi son kullanıcıyla ilgili açık bir şekilde belirtin. Fleet Engine, Search Ads 360'taki diğer tüm bilgileri tıklayın. Jetonlar hakkında daha fazla bilgi için JSON Web jetonları bölümüne bakın.
Görev kimliğine göre görev ara
Bir görevi görev kimliğine göre, gRPC veya yeni bir sunucu ortamından REST. Aşağıdaki örnekler Java gRPC kitaplığının veya GetTask için bir REST isteği.
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>, görev için benzersiz bir tanımlayıcıdır.
- <taskId>, aranacak görevin kimliğidir.
- İstek başlığında şu değeri içeren Authorization (Yetkilendirme) alanı bulunmalıdır: Taşıyıcı <token>, burada <token> sunucunuz tarafından verilir. Hizmet hesabı rolleri ve JSON Web jetonları.
- İstek metni boş olmalıdır.
- Arama başarılı olursa yanıt gövdesi, bir görev varlığı içerir.
Örnek curl
komutu:
# 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}"
İzleme kimliğine göre görev ara
Aşağıdaki örneklerde, görevleri kargo izleme kimliklerine göre nasıl arayacağınız gösterilmektedir
GetTaskTrackingInfo
için gRPC veya HTTP REST çağrısı kullanarak.
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>, görevle ilişkilendirilen izleme kimliğidir.
İstek başlığında şu değeri içeren Authorization (Yetkilendirme) alanı bulunmalıdır: Taşıyıcı <token>, burada <token> doğru hizmeti taşır hesap rolüne sahip olmanız gerekir. Hizmet hesabı rolleri başlıklı makaleyi inceleyin.
Arama başarılı olursa yanıt gövdesi, taskTrackingInfo varlığına ait olmalıdır.
Örnek curl
komutu:
# 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}"
Görevleri listeleyin
Görevleri listelemek, görevlere geniş kapsamlı erişim gerektirir. Görevleri listeleme yalnızca güvenilir kullanıcılara ulaşabilirsiniz. Teslim Filosu Okuyucu veya Teslimat Yöneticisi kimlik doğrulama jetonlarını kullanma ne kadar iyi karşıladığını görebileceksiniz. Daha fazla bilgi için Hizmet hesabı rolleri sayfasını inceleyin ekleyebilirsiniz.
Listeleri sayfalara ayır
Görev listeleri sayfalara ayrılır. Liste görevleri isteklerinde sayfa boyutu belirtilebilir. Sayfa boyutu belirtilirse döndürülen görevlerin sayısı daha fazla olmaz daha yüksek. Sayfa boyutu yoksa makul bir varsayılan değer bu düzenlemelerin nedenlerinden biri. İstenen sayfa boyutu dahili bir maksimum değeri aşıyorsa dahili maksimum değer kullanılır.
Görev listesi, sonuçların sonraki sayfasını okumak için bir jeton içerebilir. Alıcı: aynı isteği sayfa jetonuyla birlikte yeniden gönderebilirsiniz. Döndürülen sayfa jetonu boş olduğunda içerir.
Görevleri listelerken kullanılacak alanlar
Fleet Engine, görevleri listelerken aşağıdaki alanları çıkarır:
VehicleStop.planned_location
VehicleStop.state
VehicleStop.TaskInfo.taskId
Google API İyileştirme Teklifleri'ne dayalı olarak aşağıdaki alan biçimlerini kullanın:
Alan Türü | Biçim | Örnek |
---|---|---|
Zaman damgası | RFC-3339 | task_outcome_time = 2022-03-01T11:30:00-08:00 |
Süre | Saniyenin ardından s gelmelidir |
task_duration = 120s |
Enum | Dize | state = CLOSED AND type = PICKUP |
Konum | point.latitude ve point.longitude |
planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0 |
Listelenen görevleri filtrele
Listelenen görevleri çoğu görev özelliğine göre filtreleyebilirsiniz. Filtre sorgusu söz dizimi için AIP-160 adlı makaleyi inceleyin. Filtre sorgusu belirtilmemişse tüm görevler listelenir.
Aşağıdaki tabloda filtreleme için kullanabileceğiniz geçerli görev özellikleri gösterilmektedir:
Filtreleme listeleri için görev özellikleri | |
---|---|
|
|
Filtre sorgu operatörlerinin tam listesi için AIP-160 adresine bakın.
Görev örneklerini listeleyin
Aşağıdaki örnekte deliveryVehicleId
ve
görev özelliğiyle hem Java gRPC kitaplığı hem de
ListTasks
.
Başarılı bir yanıt yine de boş olabilir. Boş yanıt, hayır anlamına gelir
görev, sağlanan deliveryVehicleId
ile ilişkili.
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
Listelenen görevlere filtre uygulamak için "filtre" ekleyin Değeri olarak URL çıkışlı filtre sorgusu içeren URL parametresi.
İstek başlığında şu değeri içeren Authorization (Yetkilendirme) alanı bulunmalıdır: Taşıyıcı <token>, burada <token> doğru hizmeti taşır hesap rolüne sahip olmanız gerekir. Hizmet hesabı rolleri başlıklı makaleyi inceleyin.
Başarılı bir arama, aşağıdaki yapıyla bir yanıt gövdesi sağlar:
// JSON representation
{
"tasks": [
{
object (Task)
}
],
"nextPageToken": string,
"totalSize": integer
}
Örnek curl
komutu:
# 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}"