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. Pada umumnya, Anda sebaiknya menggunakan bahasa pemrograman pilihan Anda untuk membuat aplikasi klien yang menggunakan API tersebut, tetapi tutorial ini akan memandu Anda mempelajari dasar-dasarnya dengan memandu setiap perintah.

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

Prasyarat

  1. Anda membutuhkan 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 terdaftar 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 bukan, buka Library API dan aktifkan API tersebut.
  4. Baca panduan autentikasi untuk mempelajari cara menerapkan otorisasi OAuth 2.0.

  5. Pelajari konsep inti format data JavaScript Object Notation (JSON). JSON adalah format data umum independen 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.

  1. Buka halaman Kredensial di Konsol Developer.
  2. Jika sudah memiliki kunci API, Anda dapat menggunakan nilainya dari kunci API tersebut. Jika tidak, buat kunci baru dengan memilih Kunci API dari menu Kredensial baru.

Memperoleh token akses

  1. Buka Google Developers OAuth 2.0 Playground.
  2. Klik menu setelan (ikon roda gigi di kanan atas), centang Use your own OAuth credentials, lalu masukkan Client ID dan Client secret di kolom yang sesuai, lalu klik Close.
  3. Pada bagian Step 1: Select & authorize APIs, masukkan cakupan API https://www.googleapis.com/auth/streetviewpublish di kolom Input your own scopes, lalu klik Authorize APIs. Halaman baru akan terbuka untuk mengonfirmasi bahwa Anda ingin memberikan otorisasi kepada API.
  4. Klik Kode otorisasi Exchange untuk token. Tindakan ini akan mengisi kolom Token akses, yang akan berisi token akses, yang akan digunakan pada langkah berikutnya. 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 memiliki kunci API dan token akses, Anda dapat menjalankan perintah berikut pada shell untuk melakukan panggilan HTTP ke layanan. Pada contoh di bawah, kita melakukan 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 mengirim permintaan HTTP di atas, coba gunakan beberapa metode tambahan. Berbagai panggilan ditampilkan di bawah.

Mengambil daftar foto Anda

    $ 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

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

  1. Minta 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. Upload 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 banyak 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 untuk membuat permintaan Anda tetap kecil jika Anda ingin memperbarui sebagian foto Anda bukan semuanya. Tanpa updateMask, permintaan Anda akan memperbarui seluruh foto. Ini berarti jika Anda tidak menyetel updateMask dan permintaan Anda tidak memiliki pose, pose foto Anda akan dihapus. Beberapa kemungkinan nilai untuk updateMask adalah: places, pose.heading, pose.latlngpair, pose.level, connections. Anda dapat memasukkan beberapa nilai yang dipisahkan koma dalam updateMask.