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:

  1. Buka halaman API & Layanan > 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 bagian Kunci API.
    (Jangan lupa untuk membatasi kunci API sebelum menggunakannya dalam produksi.)

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 aplikasi dan tambahkan kode berikut ke elemen plugins.
    id 'com.google.secrets_gradle_plugin' version '0.5'
        
  2. Simpan file dan sinkronkan project Anda dengan Gradle.
  3. 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
        
  4. Simpan file dan sinkronkan project Anda dengan Gradle.
  5. 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 Kunci API.

Cara membatasi kunci API:

  1. Buka halaman API & Layanan > 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
        Untuk mendapatkan informasi selengkapnya, lihat Mendapatkan sidik jari SHA-1.
    • 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.

Mendapatkan sidik jari SHA-1

Saat membatasi kunci API, Anda harus memberikan sidik jari sertifikat SHA-1 untuk kunci penandatanganan yang digunakan untuk menandatangani aplikasi. Sidik jari adalah rangkaian 20 angka heksadesimal dua digit yang dipisahkan dengan titik dua. Ada dua jenis sertifikat:

  • Sertifikat debug: Android SDK Tools membuat sertifikat ini secara otomatis saat Anda membuat build debug. Hanya gunakan sertifikat ini bersama aplikasi yang sedang Anda uji. Jangan mencoba memublikasikan aplikasi yang ditandatangani dengan sertifikat debug.
  • Sertifikat rilis: Android SDK Tools membuat sertifikat ini saat Anda menjalankan build rilis. Anda juga dapat membuat sertifikat ini menggunakan program keytool. Gunakan sertifikat ini jika Anda siap merilis aplikasi Anda ke app store.
  • Ikuti langkah-langkah di bawah untuk menampilkan sidik jari SHA-1 menggunakan aplikasi command line Keytool.

    Sertifikat debug

    Menampilkan sidik jari sertifikat debug

    1. Temukan file keystore debug Anda. Nama file-nya adalah debug.keystore, dan dibuat saat pertama kali Anda membuat project. Secara default, file ini disimpan dalam direktori yang sama seperti file Android Virtual Device (AVD) Anda:

      • macOS dan Linux: ~/.android/
      • Windows Vista dan Windows 7: C:\Users\your_user_name\.android\
    2. Tampilkan daftar sidik jari SHA-1:

      • Untuk Linux atau macOS, buka jendela terminal dan masukkan berikut:

        keytool -list -v -keystore ~/.android/debug.keystore
         -alias androiddebugkey -storepass android -keypass android
      • Untuk Windows Vista dan Windows 7, jalankan:

        keytool -list -v -keystore
         "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey
         -storepass android -keypass android

    Output-nya akan mirip dengan yang berikut: Baris yang diawali dengan SHA1 berisi sidik jari SHA-1 sertifikat.

    Alias name: androiddebugkey
    Creation date: Jan 01, 2013
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=Android Debug, O=Android, C=US
    Issuer: CN=Android Debug, O=Android, C=US
    Serial number: 4aa9b300
    Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
    Certificate fingerprints:
         MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
         SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
         Signature algorithm name: SHA1withRSA
         Version: 3
    
    Sertifikat rilis

    Menampilkan sidik jari sertifikat rilis

    1. Temukan file keystore sertifikat rilis Anda. Tidak ada lokasi atau nama default untuk keystore rilis. Jika Anda tidak menetapkannya saat membuat aplikasi untuk rilis, build akan membiarkan .apk tidak ditandatangani, dan Anda harus menandatanganinya sebelum dapat memublikasikannya. Untuk sertifikat rilis, Anda juga memerlukan sandi dan alias sertifikat untuk keystore dan sertifikatnya. Anda dapat menampilkan daftar alias untuk semua kunci dalam keystore dengan memasukkan:

      keytool -list -keystore your_keystore_name

      Ganti your_keystore_name dengan jalur dan nama keystore yang sepenuhnya memenuhi syarat, termasuk ekstensi .keystore. Anda akan diminta memasukkan sandi keystore. Selanjutnya, keytool menampilkan semua alias dalam keystore.

    2. Masukkan hal berikut pada terminal atau command prompt:

      keytool -list -v -keystore your_keystore_name -alias your_alias_name

      Ganti your_keystore_name dengan jalur dan nama keystore yang sepenuhnya memenuhi syarat, termasuk ekstensi .keystore. Ganti your_alias_name dengan alias yang ditetapkan ke sertifikat saat Anda membuatnya.

    Output-nya akan mirip dengan yang berikut: Baris yang diawali dengan SHA1 berisi sidik jari SHA-1 sertifikat.

    Alias name: <alias_name>
    Creation date: Feb 02, 2013
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=Android Debug, O=Android, C=US
    Issuer: CN=Android Debug, O=Android, C=US
    Serial number: 4cc9b300
    Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033
    Certificate fingerprints:
        MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9
        SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75
        Signature algorithm name: SHA1withRSA
        Version: 3
    

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