Melakukan panggilan API pertama Anda

Untuk menyelesaikan langkah-langkah yang diperlukan untuk melakukan panggilan dasar ke Street View Publish API, ikuti langkah-langkah dalam tutorial ini.

Melakukan panggilan HTTP

Street View Publish API dapat dipanggil menggunakan beberapa alat seperti curl, wget, dan Postman. Dalam kebanyakan kasus, Anda akan ingin menggunakan bahasa pemrograman pilihan Anda untuk membangun aplikasi klien yang menggunakan API, namun tutorial ini akan memandu Anda melalui dasar-dasarnya dengan perintah individu.

Kami juga menyediakan beberapa library klien jika Anda tidak ingin melakukan panggilan HTTP langsung.

Prasyarat

  1. Anda memerlukan Akun Google untuk mengakses Konsol API Google, meminta kunci API, dan mendaftarkan aplikasi Anda.

  2. Buat project di Google Developers Console dan dapatkan kredensial otorisasi agar aplikasi Anda dapat mengirimkan permintaan API.

  3. Setelah membuat project, pastikan Street View Publish API adalah salah satu layanan yang didaftarkan untuk digunakan oleh aplikasi Anda:

    1. Buka Konsol API dan pilih project yang baru saja Anda daftarkan.
    2. Kunjungi halaman API yang Diaktifkan. Pastikan Google Street View API ada dalam daftar API yang diaktifkan. Jika belum, buka API Library dan aktifkan API.
  4. Baca panduan autentikasi untuk mempelajari cara menerapkan otorisasi OAuth 2.0.

  5. Pahami konsep inti format data JavaScript Object Notation (JSON). JSON adalah format data umum yang tidak bergantung pada bahasa yang memberikan representasi teks sederhana untuk struktur data arbitrer. Untuk informasi selengkapnya, buka json.org.

Mendapatkan kunci API

Untuk tujuan autentikasi dan kuota, Anda harus menggunakan Google Street View Publish API dengan kredensial yang dibuat dari Developers Console Anda.

  1. Buka halaman Credentials di Konsol Developer Anda.
  2. Jika sudah memiliki kunci API, Anda dapat menggunakan nilai dari kunci tersebut. Jika tidak, buat kunci baru dengan memilih API key dari menu New credentials.

Mendapatkan token akses

  1. Buka Google Developers OAuth 2.0 Playground.
  2. Klik menu setelan (ikon roda gigi di kanan atas), centang Gunakan kredensial OAuth Anda sendiri, lalu masukkan Client ID dan Client secret di kolom yang sesuai, lalu klik Close.
  3. Di bagian Langkah 1: Pilih & mengizinkan API, masukkan cakupan API https://www.googleapis.com/auth/streetviewpublish di kolom Masukkan cakupan Anda, lalu klik Authorize APIs. J halaman baru akan terbuka untuk mengonfirmasi bahwa Anda ingin mengizinkan API.
  4. Klik Exchange otorisasi kode untuk token. Ini akan mengisi Token akses, yang akan berisi token akses Anda yang akan digunakan di langkah selanjutnya. Masa berlaku token akses berakhir dalam 60 menit. Anda dapat memilih opsi untuk memperbarui token secara otomatis sebelum masa berlakunya habis, yang akan membuat token baru.

Mengirim permintaan HTTP

Setelah Anda memiliki kunci API dan token akses, Anda dapat menjalankan perintah berikut pada {i>shell<i} untuk melakukan panggilan HTTP ke layanan. Dalam contoh di bawah ini, kita lakukan panggilan ke metode /v1/photo:startUpload.

    $ curl --request POST \
    --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN' \
    --header 'Content-Length: 0'
  

Permintaan contoh

Setelah Anda merasa nyaman untuk mengirim permintaan HTTP di atas, coba gunakan beberapa metode. Berbagai jenis panggilan ditampilkan di bawah ini.

Mendapatkan daftar foto

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Mengambil foto

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Mengupload foto

Anda memerlukan tiga panggilan terpisah untuk membuat foto. Panggilan pertama akan menampilkan URL upload, yang digunakan dalam panggilan kedua untuk mengunggah byte foto. Setelah byte foto diupload, panggilan ketiga mengupload metadata foto dan menampilkan ID foto.

  1. Meminta URL Upload
            $ curl --request POST \
            --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
            --header 'Content-Length: 0'
          
  2. Mengupload byte foto ke URL Upload
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. Upload metadata foto
            $ curl --request POST \
            --url 'https://streetviewpublish.googleapis.com/v1/photo?key=YOUR_API_KEY' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
            --header 'Content-Type: application/json' \
            --data '{
                      "uploadReference":
                      {
                        "uploadUrl": "UPLOAD_URL"
                      },
                      "pose":
                       {
                         "heading": 105.0,
                         "latLngPair":
                         {
                           "latitude": 46.7512623,
                           "longitude": -121.9376983
                         }
                      },
                      "captureTime":
                      {
                        "seconds": 1483202694
                      },
                    }'
          

Memperbarui foto

   $ curl --request PUT \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY&updateMask=pose.latLngPair' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
     --header 'Content-Type: application/json' \
     --data '{
               "pose":
               {
                 "latLngPair":
                 {
                   "latitude": 46.7512624,
                   "longitude": -121.9376982
                 }
               }
             }'
  

Memperbarui beberapa foto sekaligus

   $ curl --request POST \
    --url 'https://streetviewpublish.googleapis.com/v1/photos:batchUpdate?key=YOUR_API_KEY' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
     --header 'Content-Type: application/json' \
     --data '{
              "updatePhotoRequests": [
                  {
                      "photo": {
                          "photoId": {
                              "id": "FIRST_PHOTO_ID"
                          },
                          "pose": {
                              "latLngPair": {
                                  "latitude": 37.1701638,
                                  "longitude": -122.3624387
                              }
                          }
                      },
                      "updateMask": "pose.latLngPair"
                  },
                  {
                      "photo": {
                          "photoId": {
                              "id": "SECOND_PHOTO_ID"
                          },
                          "pose": {
                              "latLngPair": {
                                  "latitude": 37.1685704,
                                  "longitude": -122.3618021
                              }
                          }
                      },
                      "updateMask": "pose.latLngPair"
                  }
              ]
          }'
  

Menghapus foto

    $ curl --request DELETE \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
  

Apa itu updateMask?

updateMask adalah cara agar permintaan Anda tetap kecil jika ingin memperbarui bagian foto Anda dan bukan semuanya. Tanpa updateMask, permintaan Anda akan memperbarui keseluruhan foto. Artinya, jika Anda tidak menetapkan updateMask dan permintaan Anda tidak ada pose, pose foto Anda akan dihapus. Beberapa kemungkinan nilai untuk updateMask adalah: places, pose.heading, pose.latlngpair, pose.level, connections. Anda dapat menempatkan beberapa nilai yang dipisahkan koma di updateMask.