Menggunakan Kunci API

Topik ini menjelaskan cara membuat kunci API untuk Maps SDK for Android, menambahkannya ke aplikasi Anda, dan mengamankan aplikasi dengan membatasi kunci tersebut. Anda harus menambahkan kunci API ke setiap aplikasi yang menggunakan SDK tersebut.

Sebelum memulai

Sebelum mulai menggunakan Maps SDK for Android, Anda harus memiliki project dengan akun penagihan dan mengaktifkan Maps SDK for Android. Untuk mempelajari lebih lanjut, lihat Menyiapkan project di Cloud Console.

Membuat kunci API

Kunci API adalah ID unik yang mengautentikasi permintaan terkait project untuk tujuan penggunaan dan penagihan. Anda harus memiliki setidaknya satu kunci API terkait project.

Untuk membuat kunci API:

Konsol

  1. Buka halaman Google Maps Platform > Kredensial.

    Buka halaman Kredensial

  2. Pada halaman Kredensial, klik Buat kredensial > Kunci API.
    Dialog Kunci API dibuat akan menampilkan kunci API yang baru dibuat.
  3. Klik Tutup.
    Kunci API baru dicantumkan pada halaman Kredensial di bawah Kunci API.
    (Jangan lupa untuk membatasi kunci API sebelum menggunakannya dalam produksi.)

Cloud SDK

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

Baca selengkapnya tentang Google Cloud SDK , Penginstalan Cloud SDK , dan perintah berikut:

Menambahkan kunci API ke aplikasi

Bagian ini menjelaskan cara menyimpan kunci API sehingga dapat dirujuk dengan lebih aman oleh aplikasi Anda. Anda tidak boleh memasukkan kunci API ke dalam sistem kontrol versi Anda, jadi sebaiknya simpan kunci tersebut dalam file local.properties, yang terletak di direktori utama project Anda. Untuk informasi selengkapnya tentang file local.properties, lihat file properti Gradle.

Untuk menyederhanakan tugas ini, Anda dapat menggunakan Plugin Secrets Gradle untuk Android.

Untuk menginstal plugin dan menyimpan kunci API Anda:

  1. Di Android Studio, buka file build.gradle tingkat root dan tambahkan kode berikut ke elemen dependencies di bagian buildscript.
    buildscript {
        dependencies {
            // ...
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.0"
        }
    }
        
  2. Selanjutnya, buka file build.gradle tingkat aplikasi dan tambahkan kode berikut ke elemen plugins.
    id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
        
  3. Simpan file dan sinkronkan project Anda dengan Gradle.
  4. Buka local.properties pada direktori tingkat project, lalu tambahkan kode berikut. Ganti YOUR_API_KEY dengan kunci API Anda.
    MAPS_API_KEY=YOUR_API_KEY
        
  5. Simpan file dan sinkronkan project Anda dengan Gradle.
  6. Dalam file AndroidManifest.xml Anda, buka com.google.android.geo.API_KEY dan perbarui android:value attribute seperti berikut:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

Catatan: Seperti yang ditunjukkan di atas, com.google.android.geo.API_KEY adalah nama metadata yang disarankan untuk kunci API. Kunci dengan nama ini dapat digunakan untuk mengautentikasi beberapa API berbasis Google Maps sekaligus di platform Android, termasuk Maps SDK for Android. Untuk kompatibilitas mundur, API juga mendukung nama com.google.android.maps.v2.API_KEY. Nama lama ini hanya memungkinkan autentikasi untuk Android Maps API v2. Aplikasi hanya dapat menetapkan salah satu nama metadata kunci API. Jika keduanya ditetapkan, API akan memberikan pengecualian.

Membatasi kunci API

Membatasi kunci API akan meningkatkan keamanan aplikasi Anda dengan memastikan hanya permintaan sah yang dibuat dengan kunci API Anda. Sebaiknya Anda mengikuti petunjuk untuk menetapkan pembatasan pada kunci API Anda. Untuk informasi selengkapnya, lihat Praktik terbaik keamanan API.

Saat membatasi kunci API, Anda harus memberikan sidik jari sertifikat SHA-1 untuk kunci penandatanganan yang digunakan untuk menandatangani aplikasi. Ada dua jenis sertifikat:

  • Sertifikat debug: Hanya gunakan jenis sertifikat ini bersama aplikasi yang sedang Anda uji dan kode non-produksi lainnya. Jangan mencoba memublikasikan aplikasi yang ditandatangani dengan sertifikat debug. Android SDK Tools membuat sertifikat ini secara otomatis saat Anda menjalankan build debug.
  • Sertifikat rilis: Gunakan sertifikat ini jika Anda siap merilis aplikasi ke app store. Android SDK Tools membuat sertifikat ini saat Anda menjalankan build rilis.

Untuk mendapatkan informasi selengkapnya tentang sertifikat digital, lihat panduan Menandatangani aplikasi .

Untuk informasi tentang cara mendapatkan sidik jari sertifikat, lihat halaman Mengautentikasi Klien Anda. Jika Anda menggunakan Penandatanganan Aplikasi Play; Anda harus membuka halaman penandatanganan aplikasi di Konsol Play untuk mendapatkan sidik jari sertifikat.

Cara membatasi kunci API:

Konsol

  1. Buka halaman Google Maps Platform > Kredensial.

    Buka halaman Kredensial

  2. Pilih kunci API yang ingin Anda batasi. Halaman properti kunci API akan muncul.
  3. Di bagian Pembatasan kunci, tetapkan pembatasan berikut:
    • Pembatasan aplikasi:
      1. Pilih Aplikasi Android.
      2. Klik + Tambahkan nama paket dan sidik jari.
      3. Masukkan nama paket dan sidik jari sertifikat SHA-1. Contoh:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    • Pembatasan API:
      1. Klik Batasi kunci.
      2. Pilih Maps SDK for Android dari drop-down Pilih API. Jika Maps SDK for Android tidak tercantum, Anda harus mengaktifkannya.
  4. Untuk menyelesaikan perubahan, klik Simpan.

Cloud SDK

Cantumkan kunci yang ada.

gcloud services api-keys list --project="PROJECT"

Hapus pembatasan yang ada pada kunci yang ada.

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --clear-restrictions

Tetapkan pembatasan baru pada kunci yang ada.

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --api_target="maps-android-backend.googleapis.com"
    --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"

Baca selengkapnya tentang Google Cloud SDK , Penginstalan Cloud SDK , dan perintah berikut: