Pemecahan Masalah Otorisasi untuk Implementasi Google Maps APIs for Work

Laman ini hanya untuk pelanggan yang memiliki lisensi sebelumnya dari Maps APIs for Work atau lisensi Maps API for Business. Laman ini tidak berlaku untuk pelanggan yang memiliki Google Maps APIs Premium Plan baru, yang tersedia pada Januari 2016.

Tim Google Cloud Support
Desember 2011

ID klien Google Maps APIs for Work 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 for Work 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.

  • 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 Maps API 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.

  • Google Static Maps API dan Google Street View Image API tidak akan menampilkan pesan kesalahan. Namun, permintaan untuk API yang menggunakan ID klien dari URL yang tidak diizinkan tidak akan dibahas oleh Google Maps APIs for Work SLA dan tidak memenuhi persyaratan untuk dukungan teknis.

Hasil akhirnya adalah bahwa pengguna tidak akan bisa menggunakan fitur yang tergantung pada Google Maps JavaScript API.

Membuang ID klien dari aplikasi akan mengatasi masalah ini, namun dengan melakukannya Anda akan kehilangan semua hak istimewa Google Maps APIs for Work 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 for Work yang valid dengan benar, tidak akan kompatibel dengan Google Maps APIs Ketentuan Layanan gratis.

Akibatnya, menghapus ID klien sering kali bukanlah solusi yang tepat.

Solusi

Cara yang paling tepat untuk mengatasi ini 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 melakukan tweak 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 Maps API 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 Maps API 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.

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.