Görevleri bulma

Bu dokümanda, bir emin olmanız gerekir. Fleet Engine, görevleri bulmanın iki yolunu destekler:

  • Görevleri arama: Görevleri aşağıdaki kimliklere göre arayabilirsiniz:

    • Görev kimliği: Görev verilerinin tam görünümüne erişimi olan filo operatörleri gibi kullanıcılar tarafından kullanılır.
    • İ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 izleme kimliği arasındaki farkı anladığınızdan emin olun. Ancak bunlar aynı değildir. Planlanmış görev kılavuzundaki Temel görev alanları bölümüne bakın.

  • Görevleri listeleme: Yalnızca güvenilir kullanıcılara yönelik, görevlere geniş kapsamlı erişim.

Görevleri 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

gRPC veya REST'i kullanarak bir görevi sunucu ortamında görev kimliğine göre arayabilirsiniz. Aşağıdaki örneklerde, Java gRPC kitaplığının veya GetTask için bir REST isteğinin nasıl kullanılacağı gösterilmektedir.

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örevin benzersiz tanımlayıcısıdır.
  • &lt;taskId&gt;, aranacak görevin kimliğidir.
  • İstek üstbilgisinde, Authorization (Yetkilendirme) alanı olmalıdır. Bu alanın değeri Bearer <token> (Taşıyıcı <token>) şeklindedir. <token>, Hizmet hesabı rolleri ve JSON web jetonları bölümünde açıklanan yönergelere göre sunucunuz tarafından verilir.
  • İstek metni boş olmalıdır.
  • Arama başarılı olursa yanıt gövdesinde bir görev öğesi bulunur.

Ö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>

  • &lt;tracking_id&gt;, 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ı makaleye bakın.

  • 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 için görevlere geniş erişim izni gerekir. 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. Bir sayfa boyutu belirtilirse döndürülen görevlerin sayısı belirtilen sayfa boyutundan büyük olamaz. Sayfa boyutu yoksa makul bir varsayılan bu düzenlemelerin nedenlerinden biri. İstenen sayfa boyutu dahili bir maksimum değeri aşarsa 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, başka görev getirilemez.

Görevleri listelemede kullanılan alanlar

Fleet Engine, görevleri listelerken aşağıdaki alanları çıkartı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 başlıklı makaleyi inceleyin. Filtre sorgusu belirtilmezse tüm görevler listelenir.

Aşağıdaki tabloda, filtreleme için kullanabileceğiniz geçerli görev özellikleri gösterilmektedir:

Listeleri filtrelemek için görev özellikleri
  • type
  • attributes
  • tracking_id
  • delivery_vehicle_id
  • state
  • planned_location
  • task_duration
  • task_duration_outcome
  • task_outcome
  • task_outcome_location
  • task_outcome_time

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ı makaleye bakın.

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}"

Sırada ne var?