Pemecahan Masalah Otorisasi URL Premium Plan Google Maps Platform

Tempat mengelola Client ID Anda di Google Cloud Console

Fungsi pengelolaan Client ID Premium Plan akan bermigrasi dari Portal Dukungan ke Cloud Console pada halaman Kredensial Maps di bagian Akun Layanan.

Area Client ID baru di halaman Kredensial

Catatan: Premium Plan Google Maps Platform tidak lagi tersedia untuk pendaftar atau pelanggan baru.

Client ID Premium Plan Google Maps Platform dibatasi untuk URL yang diberi otorisasi secara khusus. Jika Anda mencoba menggunakan client ID pada URL yang belum diberi otorisasi, Anda akan menerima pesan error.

Artikel ini ditujukan bagi pelanggan Premium Plan Google Maps Platform yang mengalami masalah ini dan perlu menemukan URL spesifik yang harus diberi otorisasi.

Dasar-dasar

Untuk mencegah pihak ketiga menggunakan client ID Anda di situs mereka sendiri, penggunaan client ID Anda dibatasi untuk daftar URL yang harus Anda beri otorisasi. Setiap URL dapat bersifat spesifik seperti halaman web tunggal atau bersifat umum seperti seluruh domain.

Untuk mendapatkan daftar URL yang diberi otorisasi atau memberi otorisasi URL tambahan, buka halaman Kredensial, lalu scroll ke bagian Client ID.

Anda dapat menambahkan hingga 100 URL sekaligus. Sebuah client ID dapat dikaitkan dengan maksimal 3.000 URL yang diberi otorisasi. Jika Anda memperkirakan aplikasi Anda akan menghosting konten Google Maps yang memuat lebih dari 3.000 lokasi, sebaiknya Anda beralih menggunakan kunci API.

Informasi selengkapnya tentang cara memberi otorisasi URL tersedia di panduan developer.

Masalah

Aplikasi yang berada pada URL yang belum diberi otorisasi untuk client ID Anda tidak akan dapat menggunakan Google Maps Platform dengan client ID Anda. Pengguna yang mencoba menggunakan aplikasi tersebut akan menerima pesan error, tergantung pada API yang coba dimuat oleh aplikasi. Pengguna tidak akan dapat menggunakan fitur yang bergantung pada Maps JavaScript API.

  • Maps JavaScript API akan menampilkan pesan ini:

    Halaman ini tidak dapat menampilkan elemen Google Maps. URL ini tidak diberi otorisasi untuk menggunakan Client ID Google Maps yang diberikan. Kode Error: UnauthorizedURLForClientIdMapError

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

    Google telah menonaktifkan penggunaan Google Maps Platform untuk aplikasi ini. Situs ini tidak diberi otorisasi untuk menggunakan client ID Google Maps yang diberikan. Jika Anda adalah pemilik aplikasi ini, Anda dapat mempelajari lebih lanjut cara mendaftarkan URL di panduan developer.

Menghapus client ID dari aplikasi bukanlah solusi yang tepat*. Melakukan hal tersebut akan membuat Anda kehilangan semua hak istimewa Premium Plan Google Maps Platform untuk aplikasi tersebut. Hal ini berarti Anda tidak berhak atas:

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

Ini berarti bahwa aplikasi yang bersifat hanya internal atau berbayar dan tidak menggunakan client ID Premium Plan Google Maps Platform yang valid dengan benar tidak akan sesuai dengan Persyaratan Layanan Google Maps Platform standar.

Solusi

Solusi yang tepat adalah menemukan dan memberi otorisasi URL yang tepat untuk menggunakan client ID Anda.

Pada umumnya, Anda perlu memberi otorisasi aplikasi untuk menggunakan client ID Anda. Aplikasi sering menggunakan beberapa URL yang mempunyai pola yang sama, misalnya pencari toko bisa terdapat di example.com/stores atau di stores.example.com. Anda perlu menemukan URL yang akan cocok dengan semua URL yang digunakan aplikasi Anda.

Catatan: Memberi otorisasi www.example.com tidak akan memberi otorisasi stores.example.com atau subdomain lain dari example.com.

Setiap URL yang Anda beri otorisasi dapat bersifat spesifik seperti halaman web tunggal atau bersifat umum seperti seluruh domain, termasuk subdomain-nya. Harap lihat panduan developer untuk informasi selengkapnya. Kami menyarankan agar Anda memberi otorisasi URL yang cocok dengan kumpulan URL yang cukup besar, selama Anda mengelolanya.

Catatan: Sebaiknya jangan memberi otorisasi seluruh domain, kecuali jika organisasi Anda memiliki kontrol penuh atas semua konten dalam domain tersebut. Misalnya, memberi otorisasi seluruh domain blogspot.com akan memungkinkan semua orang menggunakan client ID Anda dari domain tersebut, dengan biaya Anda. Sebaiknya Anda hanya memberi otorisasi blog tertentu, misalnya googlegeodevelopers.blogspot.com atau bahkan halaman tertentu dalam blog tersebut.

Cara menemukan URL yang tepat

Biasanya Anda akan menemukan URL dalam panel lokasi browser Anda. Pada situs publik yang tidak menggunakan tag <iframe>, biasanya hal ini mudah dilakukan. Jika ragu, Anda dapat menggunakan langkah di bawah ini untuk melakukan verifikasi.

Aplikasi yang kompleks dapat memuat Google Maps Platform dari URL selain yang ada pada panel lokasi pengguna. Hal inilah yang terjadi pada tag <iframe> atau ketika URL halaman yang memuat API dibuat secara dinamis pada server, lalu dikirim ke browser. Dalam kasus ini, menemukan URL yang tepat memerlukan pemeriksaan permintaan HTTP tertentu dari browser ke server Google.

URL yang harus diberi otorisasi adalah URL pada 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 dapat dikirim ke maps.google.com atau maps-api-ssl.google.com, tergantung pada cara aplikasi disiapkan untuk memuat API. Oleh karena itu, ketika mencari permintaan di atas, biasanya jalur (dalam huruf tebal) adalah yang terpenting.

Dari header HTTP pada browser Anda

Agar Anda dapat 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 yang umum digunakan:

Catatan: Anda perlu mengonfigurasi Fiddler2 agar dapat merekam traffic HTTPS. Harap lihat detailnya di sini.

Jika Anda tidak dapat merekam header HTTP langsung dari browser, Anda dapat mencoba merekam traffic HTTP menggunakan penganalisis protokol jaringan seperti Wireshark. Pengoperasian alat ini mungkin lebih rumit dibandingkan alat-alat di atas. Lihatlah beberapa tutorial Wireshark di web jika Anda belum akrab dengan alat tersebut.

Setelah menentukan alat yang akan digunakan, ikuti langkah-langkah berikut untuk menemukan URL yang perlu diberi otorisasi:

  1. Jalankan alat perekam. Pastikan alat tersebut merekam permintaan HTTP dari browser Anda.
  2. Arahkan browser ke aplikasi yang tidak dapat memuat Google Maps Platform menggunakan client ID Anda. Anda akan menerima salah satu pesan error yang dijelaskan di atas.
  3. Hentikan perekaman traffic HTTP. Hal ini akan mempermudah pemeriksaan traffic yang telah direkam.
  4. Temukan permintaan yang mencoba memuat Google Maps Platform menggunakan client ID Anda. Misalnya, jika aplikasi Anda mencoba memuat 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 perlu diberi otorisasi untuk menggunakan client ID Anda.

Dari Konsol JavaScript pada browser Anda

Jika Anda menggunakan kunci API atau client ID di situs yang tidak diberi otorisasi, Maps JavaScript API akan menulis pesan error pada window.console. Anda dapat menemukan URL yang tepat dalam pesan error. Pada konsol, carilah pesan error yang terlihat seperti ini:

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

Untuk bantuan dalam menemukan pesan error, lihat bagian tentang memeriksa error pada browser Anda.

Menemukan pola yang umum

Untuk memastikan bahwa seluruh aplikasi dapat memuat Google Maps Platform menggunakan client ID Anda, maka Anda harus menemukan pola umum di seluruh URL yang digunakan oleh aplikasi dan memberi otorisasi URL yang mewakili pola ini, dengan mengikuti aturan yang dijelaskan dalam panduan developer.

Sering kali hal ini sesederhana satu direktori (misalnya example.com/stores), atau subdomain (misalnya stores.example.com - sering kali hal ini mudah diketahui hanya dari beberapa URL.

Ketika menangani aplikasi yang kompleks, Anda mungkin perlu mengulangi langkah-langkah di atas dengan beberapa URL yang ditampilkan kepada pengguna, yang menampilkan peta. Namun, proses ini mungkin terlalu rumit dan masih menghasilkan kumpulan URL yang tidak lengkap. Untuk aplikasi seperti ini, akan lebih baik jika pola URL disediakan oleh pihak developernya.