Pemecahan Masalah Otorisasi URL Google Maps APIs Premium Plan

ID klien Google Maps APIs Premium Plan dibatasi untuk URL yang diizinkan secara khusus. Jika Anda mencoba menggunakan ID klien pada URL yang belum diizinkan, Anda akan menerima pesan kesalahan.

Artikel ini ditujukan bagi pelanggan Google Maps APIs Premium Plan yang mengalami masalah ini dan perlu menemukan URL tepat yang perlu diizinkan.

Dasar-Dasar

Guna mencegah pihak ketiga menggunakan ID klien Anda di situs web mereka, penggunaan ID klien Anda dibatasi untuk daftar URL yang perlu Anda otorisasi. Setiap URL bisa khusus seperti laman web tunggal atau generik seperti seluruh domain.

Untuk memperoleh daftar URL yang terotorisasi, atau memberi otorisasi URL tambahan:

  1. Masuk ke Google Cloud Support Portal.
  2. Dari menu sisi kiri, klik Maps: Manage Client ID.

Anda bisa menambahkan hingga 100 URL sekaligus, hingga total sebanyak 3000 URL. Jika Anda memerlukan batas yang lebih tinggi, silakan hubungi Google Cloud Support.

Informasi selengkapnya tentang pemberian izin URL tersedia dalam panduan developer.

Masalah

Aplikasi yang berada pada URL yang belum diizinkan bagi ID klien tidak akan bisa menggunakan Google Maps APIs dengan ID klien Anda. Pengguna yang mencoba menggunakan aplikasi tersebut akan menerima pesan kesalahan, tergantung pada API khusus yang coba dimuat aplikasi. Pengguna tidak akan bisa menggunakan fitur yang tergantung pada Google Maps JavaScript API.

  • Google Maps JavaScript API akan menampilkan pesan ini:

    Laman ini tidak bisa menampilkan elemen Google Maps. URL ini tidak diizinkan menggunakan Google Maps Client ID yang disediakan. Kode kesalahan: UnauthorizedURLForClientIdMapError

  • Jika Anda menggunakan Google Maps JavaScript API v3.18 atau lebih lawas, pesan berikut akan ditampilkan:

    Google telah menonaktifkan penggunaan Google Maps APIs untuk aplikasi ini. Situs ini tidak diizinkan menggunakan Google Maps client ID yang disediakan. Jika Anda adalah pemilik aplikasi ini, Anda bisa mengetahui selengkapnya tentang pendaftaran URL dalam panduan developer.

Membuang ID klien dari aplikasi bukanlah solusi yang tepat*. Bila melakukannya, Anda akan kehilangan semua hak istimewa Google Maps APIs Premium Plan untuk aplikasi tersebut. Ini berarti Anda tidak berhak atas:

  • Perjanjian Tingkat Layanan (SLA) yang kuat.
  • Dukungan pelanggan.
  • Peningkatan batas pada layanan web.
  • Ketentuan dan persyaratan tingkat-komersial.
  • Dukungan aplikasi intranet di tempat kerja Anda.

Ini berarti bahwa aplikasi yang bersifat hanya-internal atau tidak-gratis dan tidak menggunakan ID klien Google Maps APIs Premium Plan yang valid dengan benar, tidak akan kompatibel dengan Google Maps APIs Ketentuan Layanan gratis.

Solusi

Solusi yang paling tepat adalah dengan menemukan dan mengizinkan URL yang tepat untuk menggunakan ID klien Anda.

Dalam kebanyakan kasus, Anda perlu mengizinkan aplikasi untuk menggunakan ID klien Anda. Aplikasi sering menggunakan beberapa URL yang mempunyai pola yang sama, mis. pencari toko bisa terdapat di example.com/stores atau pada stores.example.com. Anda harus menemukan URL yang akan cocok dengan semua URL yang digunakan aplikasi Anda.

Catatan: Mengizinkan www.example.com tidak akan mengizinkan stores.example.com atau subdomain lain dari example.com.

Setiap URL yang Anda izinkan bisa khusus seperti laman web tunggal atau generik seperti seluruh domain, termasuk subdomain-nya. Silakan lihat panduan developer untuk informasi selengkapnya. Kami menyarankan agar mengizinkan URL yang cocok dengan set URL yang cukup besar, asalkan Anda mengelolanya.

Catatan: Kami sarankan agar menentang pemberian otorisasi seluruh domain kecuali organisasi Anda memiliki kontrol penuh atas semua materi dalam domain tersebut. Misalnya, memberikan otorisasi seluruh domain blogspot.com akan memungkinkan semua orang menggunakan ID klien Anda, dengan biaya Anda, dari domain tersebut. Sebaiknya, Anda memberikan otorisasi hanya untuk blog tertentu, mis. googlegeodevelopers.blogspot.com atau bahkan laman tertentu dalam blog tersebut.

Cara menemukan URL yang tepat

Biasanya Anda akan menemukan URL dalam bilah lokasi browser Anda. Pada situs web publik yang tidak menggunakan tag <iframe>, ini biasanya mudah. Jika ragu, Anda bisa menggunakan pendekatan di bawah ini untuk melakukan verifikasi.

Aplikasi yang kompleks mungkin memuat Google Maps APIs dari URL selain yang terdapat dalam bilah lokasi pengguna. Inilah yang akan terjadi dengan tag <iframe> atau ketika URL dari laman yang memuat API dihasilkan secara dinamis pada server dan kemudian dikirim ke browser. Menemukan URL yang tepat dalam kejadian ini memerlukan pemeriksaan permintaan HTTP tertentu dari browser ke server Google.

URL yang harus diizinkan adalah yang terdapat dalam header Referer untuk permintaan yang dikirim browser ke Google untuk memuat API. Setiap API dimuat dari URL yang berbeda:

Semua permintaan ke maps.googleapis.com akan dikirim ke maps.google.com atau maps-api-ssl.google.com tergantung pada bagaimana aplikasi dipersiapkan untuk memuat API. Karena itu, ketika mencari permintaan di atas, biasanya jalur (dalam huruf tebal) adalah yang terpenting.

Dari header HTTP dalam browser Anda

Sebelum Anda bisa memeriksa header Referer pada permintaan di atas, Anda harus terlebih dahulu merekamnya dari browser Anda. Beberapa alat yang tersedia secara gratis untuk merekam header HTTP di semua browser utama:

Catatan: Anda perlu mengonfigurasi Fiddler2 untuk merekam lalu lintas HTTPS. Silakan lihat detailnya di sini.

Jika Anda tidak bisa merekam header HTTP secara langsung dari browser, Anda dapat mencoba merekam lalu lintas HTTP menggunakan penganalisis protokol jaringan seperti Wireshark. Alat (bantu) ini mungkin lebih kompleks untuk dioperasikan dibandingkan alat-alat di atas, periksa beberapa tutorial Wireshark di web jika Anda belum familier dengan alat tersebut.

Setelah Anda menentukan alat (bantu) pilihan, ikuti langkah-langkah berikut untuk menemukan URL yang perlu diotorisasi:

  1. Menjalankan alat (bantu) perekam. Pastikan alat itu merekam permintaan HTTP dari browser Anda.
  2. Arahkan browser ke aplikasi yang tidak dapat memuat Google Maps APIs menggunakan ID klien Anda. Anda seharusnya mendapat salah satu pesan kesalahan seperti yang dijelaskan di atas.
  3. Berhenti merekam lalu lintas HTTP. Ini akan mempermudah pemeriksaan lalu lintas yang sudah direkam.
  4. Temukan permintaan yang mencoba memuat Google Maps APIs menggunakan ID klien Anda. Misalnya, jika aplikasi Anda mencoba memuat Google Maps JavaScript API, carilah permintaan seperti:
    GET /maps/api/js?client=gme-yourclientid HTTP/1.1
  5. Header permintaan HTTP akan mengikuti tepat setelah baris tersebut, tanpa jeda baris. Temukan yang seperti:
    Referer: http://www.example.com/stores/find?zip=94043
  6. URL dalam baris tersebut adalah URL yang harus diizinkan untuk menggunakan ID klien Anda.

Dari Konsol JavaScript dalam browser Anda

Jika Anda menggunakan kunci API atau ID klien di situs yang tidak diizinkan, Google Maps JavaScript API menulis pesan kesalahan dalam window.console. Anda bisa menemukan URL yang benar dalam pesan kesalahan. Pada konsol, telusur pesan kesalahan yang terlihat seperti ini::

Google Maps APIs error: UnauthorizedURLForClientIdMapError ...
Your site URL to be authorized: http://www.example.com/stores/find?zip-94043

Untuk bantuan menemukan pesan kesalahan, lihat bagian mengenai memeriksa kesalahan di browser Anda.

Menemukan pola yang sama

Untuk memastikan bahwa seluruh aplikasi bisa memuat Google Maps APIs menggunakan ID klien, Anda harus menemukan pola umum pada seluruh URL yang digunakan aplikasi dan memberi otorisasi kepada URL yang menunjukkan pola ini, mengikuti aturan yang dijelaskan dalam panduan developer.

Ini bisa sesederhana satu direktori (mis. example.com/stores), atau subdomain (mis. stores.example.com — sering kali dapat disimpulkan hanya dari beberapa URL.

Ketika berhadapan dengan aplikasi kompleks, Anda mungkin perlu mengulangi langkah-langkah di atas dengan beberapa URL menghadap-pengguna yang menampilkan sebuah peta. Namun, proses ini mungkin terlalu sulit dan masih menghasilkan kumpulan URL yang tidak lengkap. Untuk aplikasi seperti ini, developer kemungkinan akan menjadi pihak yang paling tepat untuk memberikan pola URL.