Menggunakan OAuth

Route Optimization API mendukung penggunaan OAuth 2.0 untuk autentikasi. Google mendukung skenario OAuth 2.0 umum, seperti skenario untuk server web.

Dokumen ini menjelaskan cara meneruskan token OAuth ke panggilan Route Optimization API di pengembangan Google Cloud. Untuk petunjuk tentang penggunaan OAuth di production, lihat Authentication di Google.

Sebelum memulai

Sebelum mulai menggunakan Route Optimization API, Anda memerlukan project dengan akun penagihan dan Route Optimization API yang diaktifkan. Sebaiknya buat beberapa Project Owner dan Billing Administrator, sehingga selalu ada seseorang yang memiliki peran ini yang tersedia untuk tim Anda. Untuk mempelajari lebih lanjut, lihat Menyiapkan project di Cloud Console.

Tentang OAuth

Ada banyak cara untuk membuat dan mengelola token akses dengan OAuth berdasarkan deployment Anda lingkungan fleksibel App Engine.

Misalnya, sistem Google OAuth 2.0 mendukung interaksi server-ke-server, seperti antara aplikasi Anda dan layanan Google. Untuk skenario ini, Anda memerlukan akun layanan, adalah akun milik aplikasi Anda, bukan milik pengguna akhir individu. Nama aplikasi memanggil Google API atas nama akun layanan, sehingga pengguna tidak terlibat secara langsung. Untuk informasi lebih lanjut tentang metode otentikasi, lihat Authentication di Google.

Atau, Anda dapat menggunakan Route Optimization API sebagai bagian dari aplikasi seluler Android atau iOS. Untuk informasi umum tentang penggunaan OAuth dengan Route Optimization API, termasuk informasi tentang cara mengelola token akses untuk berbagai lingkungan deployment, Menggunakan OAuth 2.0 untuk Mengakses Google API.

Tentang cakupan OAuth

Untuk menggunakan OAuth dengan Route Optimization API, token OAuth harus diberi cakupan:

  • https://www.googleapis.com/auth/cloud-platform

Contoh: Mencoba panggilan REST API di lingkungan pengembangan lokal Anda

Jika Anda ingin mencoba Route Optimization API menggunakan token OAuth, tetapi tidak memiliki lingkungan untuk menghasilkan token, Anda dapat menggunakan prosedur di bagian ini untuk melakukan panggilan.

Contoh ini menjelaskan cara menggunakan token OAuth yang disediakan oleh Kredensial Default Aplikasi (ADC) untuk menelepon. Untuk informasi tentang cara menggunakan ADC untuk memanggil Google API menggunakan library klien, lihat Autentikasi menggunakan library klien.

Prasyarat

Agar Anda dapat membuat permintaan REST menggunakan ADC, gunakan Google Cloud CLI untuk memberikan kredensial ke ADC:

  1. Jika Anda belum melakukannya, buat project dan aktifkan penagihan dengan mengikuti langkah-langkah di Menyiapkan Project di Google Cloud Console.
  2. Instal dan lakukan inisialisasi gcloud CLI.
  3. Jalankan perintah gcloud berikut di komputer lokal Anda untuk membuat file kredensial:

    gcloud auth application-default login
  4. Layar login akan ditampilkan. Setelah Anda login, kredensial Anda akan disimpan di file kredensial lokal yang digunakan oleh ADC.

Untuk informasi selengkapnya, lihat Lingkungan pengembangan lokal bagian dari Berikan kredensial untuk Kredensial Default Aplikasi dokumentasi tambahan.

Membuat permintaan REST

Dalam contoh ini, Anda meneruskan dua header permintaan:

  • Teruskan token OAuth di header Authorization menggunakan perintah berikut untuk membuat token:

    gcloud auth application-default print-access-token

    Token yang ditampilkan memiliki cakupan https://www.googleapis.com/auth/cloud-platform.

  • Tentukan jenis konten isi permintaan adalah application/json.

Contoh berikut melakukan panggilan ke Route Optimization API menggunakan token OAuth:

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data-binary @- << EOM
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        }
      }
    ],
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00"
  }
}
EOM

Pemecahan masalah

Jika permintaan Anda menampilkan pesan error tentang kredensial pengguna akhir yang tidak didukung oleh API ini, lihat Kredensial pengguna tidak berfungsi.