Korzystanie z kluczy interfejsu API

Zanim zaczniesz

Zanim zaczniesz korzystać z pakietu SDK Miejsc na Androida, musisz mieć projekt z kontem rozliczeniowym i włączony pakiet SDK Miejsc na Androida. Więcej informacji znajdziesz w artykule Konfiguracja w Cloud Console.

Tworzenie kluczy interfejsu API

Klucz interfejsu API jest unikalnym identyfikatorem uwierzytelniającym żądania powiązane z Twoim projektem na potrzeby użytkowania i rozliczeń. Musisz mieć co najmniej jeden klucz interfejsu API powiązany z Twoim projektem.

Aby utworzyć klucz interfejsu API:

Konsola

  1. Otwórz stronę Dane logowania w Google Maps Platform.

    Otwórz stronę Dane logowania

  2. Na stronie Dane logowania kliknij Utwórz dane logowania &klucz API.
    W oknie Utworzono klucz API pojawi się nowo utworzony klucz.
  3. Kliknij Zamknij.
    Nowy klucz interfejsu API znajdziesz na stronie Dane logowania w sekcji Klucze interfejsu API.
    (Pamiętaj, aby ograniczyć dostęp do klucza interfejsu API przed użyciem go w środowisku produkcyjnym).

(pakiet) SDK Cloud

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

Dowiedz się więcej o pakietach Google Cloud SDK, instalacji Cloud SDK i o tych poleceniach:

Ograniczenie kluczy interfejsu API

Zdecydowanie zalecamy ograniczenie kluczy interfejsu API tylko do tych interfejsów API, których potrzebujesz w przypadku swojej aplikacji. Ograniczenie kluczy interfejsu API zwiększa bezpieczeństwo aplikacji, chroniąc ją przed nieuzasadnionymi żądaniami. Więcej informacji znajdziesz w artykule o sprawdzonych metodach zabezpieczania interfejsu API.

Podczas ograniczania klucza interfejsu API musisz podać odcisk cyfrowy certyfikatu SHA-1, który został użyty do podpisania aplikacji. Istnieją 2 typy certyfikatów:

  • Certyfikat debugowania: ten typ certyfikatu używaj tylko w aplikacjach, które testujesz, oraz w innych kodach nieprodukcyjnych. Nie próbuj publikować aplikacji podpisanej certyfikatem debugowania. Narzędzia Android SDK automatycznie generują ten certyfikat podczas uruchamiania kompilacji debugowania.
  • Certyfikat wersji: użyj tego certyfikatu, gdy zechcesz opublikować aplikację w sklepie z aplikacjami. Narzędzia Android SDK generują ten certyfikat podczas uruchamiania kompilacji.

Więcej informacji o certyfikatach cyfrowych znajdziesz w przewodniku Podpisywanie aplikacji.

Aby dowiedzieć się więcej o uzyskiwaniu odcisku cyfrowego certyfikatu, zobacz Uwierzytelnianie klienta. Jeśli zamiast tego korzystasz z podpisywania aplikacji przez Google Play, otwórz stronę podpisywania aplikacji w Konsoli Play, aby uzyskać odcisk cyfrowy certyfikatu.

Aby ograniczyć klucz interfejsu API:

Konsola

  1. Otwórz stronę Dane logowania w Google Maps Platform.

    Otwórz stronę Dane logowania

  2. Wybierz klucz interfejsu API, dla którego chcesz ustawić ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
  3. W sekcji Ograniczenia klucza ustaw te ograniczenia:
    • Ograniczenia aplikacji:
      1. Kliknij Aplikacje na Androida.
      2. Kliknij + Dodaj nazwę pakietu i odcisk cyfrowy.
      3. Wpisz nazwę pakietu i odcisk cyfrowy certyfikatu SHA-1. Na przykład:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    • Ograniczenia interfejsów API:
      1. Kliknij Ogranicz klucz.
      2. Wybierz Places API z interfejsu Wybierz interfejsy API. Jeśli interfejsu Places API nie ma na liście, musisz go włączyć.
  4. Aby zapisać zmiany, kliknij Zapisz.

(pakiet) SDK Cloud

Wyświetlenie listy istniejących kluczy.

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

Wyczyść istniejące ograniczenia istniejącego klucza.

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

Ustaw nowe ograniczenia dotyczące dotychczasowego klucza.

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

Dowiedz się więcej o pakietach Google Cloud SDK, instalacji Cloud SDK i o tych poleceniach:

Znajdowanie informacji o certyfikacie aplikacji

Klucz interfejsu API wykorzystuje krótki format certyfikatu cyfrowego aplikacji, nazywany odciskiem cyfrowym SHA-1. Aby wyświetlać odcisk cyfrowy SHA-1 dla certyfikatu, najpierw upewnij się, że używasz odpowiedniego certyfikatu. Możesz mieć 2 certyfikaty:

  • Certyfikat debugowania: narzędzia Android SDK automatycznie generują ten certyfikat podczas tworzenia kompilacji. Używaj tego certyfikatu tylko w aplikacjach, które testujesz. Nie próbuj publikować aplikacji podpisanej certyfikatem debugowania. Certyfikat debugowania został bardziej szczegółowo opisany w sekcji Logowanie się w trybie debugowania w dokumentacji dla deweloperów aplikacji na Androida.
  • Certyfikat wersji: podczas tworzenia wersji narzędzia pakietu Android SDK generują ten certyfikat. Certyfikat możesz też wygenerować za pomocą programu keytool. Użyj tego certyfikatu, gdy zechcesz udostępnić aplikację światu.

Używanie Gradle

Gradle bardzo ułatwia uzyskanie informacji o podpisywaniu aplikacji. Wystarczy, że uruchomisz ./gradlew signingReport.

Dane wyjściowe powinny wyglądać mniej więcej tak:

Task :app:signingReport

Variant: debug
Config: debug
Store: ~/.android/debug.keystore
Alias: AndroidDebugKey
MD5: 76:4E:BF:C3:59:DA:D3:8F:98:D6:3C:DB:87:A4:5B:E7
SHA1: 99:8E:73:B8:3A:A3:A3:C4:C1:D4:19:08:F6:7E:9E:F6:75:29:4C:B2
SHA-256: 6C:01:12:53:90:94:73:B5:66:D6:07:FF:A5:6F:AB:30:AE:99:20:55:0F:B3:12:22:4C:46:7E:02:3D:7E:6D:1D
Valid until: Friday, June 25, 2049
----------
Variant: release
Config: release
Store: app/keystore.jks
Alias: keystore
MD5: 1E:63:0F:14:67:E0:04:BD:98:4C:EB:2B:09:EF:7E:1E
SHA1: 2C:DF:9F:D1:A3:0D:1E:01:48:34:5D:91:52:0B:D8:8A:5A:07:45:C3
SHA-256: 12:66:CE:4B:90:FD:64:1A:4D:79:9E:78:AD:59:0C:21:D8:53:61:EE:2B:90:E4:67:CE:65:A0:76:04:13:23:89
Valid until: Tuesday, September 29, 2116

Ręcznie

Wykonaj poniższe czynności, aby wyświetlić odcisk cyfrowy certyfikatu SHA-1 za pomocą programu keytool z parametrem -v. Więcej informacji o narzędziu Keytool znajdziesz w dokumentacji Oracle.

Certyfikat debugowania

Wyświetlam odcisk cyfrowy certyfikatu debugowania

  1. Znajdź plik magazynu kluczy debugowania. Nazwa pliku to debug.keystore i jest tworzona po raz pierwszy przy kompilowaniu projektu. Domyślnie przechowujemy go w tym samym katalogu, w którym znajdują się pliki urządzeń wirtualnych (Android AVD):

    • macOS i Linux: ~/.android/
    • Windows Vista i Windows 7: C:\Users\your_user_name\.android\
  2. Wyświetl listę odcisków cyfrowych SHA-1:

    • W systemie Linux lub macOS otwórz okno terminala i wpisz to:

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • W systemie Windows Vista i Windows 7 uruchom polecenie:

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

Dane wyjściowe powinny wyglądać podobnie do tych:

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

Certyfikat wydania

Wyświetlam odcisk cyfrowy certyfikatu wersji

  1. Znajdź plik magazynu kluczy certyfikatu wersji. Nie ma domyślnej lokalizacji ani nazwy magazynu wersji. Jeśli nie określisz tej wartości podczas tworzenia aplikacji, nie spowoduje to podpisania Twojej kreacji .apk. Przed jej opublikowaniem musisz ją podpisać. W przypadku certyfikatu wersji wymagany jest też alias certyfikatu oraz hasła do magazynu kluczy i certyfikatu. Aby wyświetlić listę wszystkich kluczy w magazynie kluczy, wpisz:

    keytool -list -keystore your_keystore_name

    Zastąp your_keystore_name w pełni kwalifikowaną ścieżką i nazwą magazynu kluczy, razem z rozszerzeniem .keystore. Pojawi się prośba o podanie hasła do magazynu kluczy. Następnie keytool wyświetli wszystkie aliasy w magazynie kluczy.

  2. Wpisz w terminalu lub wierszu polecenia:

    keytool -list -v -keystore your_keystore_name -alias your_alias_name

    Zastąp your_keystore_name w pełni kwalifikowaną ścieżką i nazwą magazynu kluczy, razem z rozszerzeniem .keystore. Zastąp your_alias_name aliasem przypisanym do certyfikatu podczas jego tworzenia.

Dane wyjściowe powinny wyglądać podobnie do tych:

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

Wiersz rozpoczynający się od SHA1 zawiera odcisk cyfrowy certyfikatu SHA-1. Odcisk cyfrowy to sekwencja 20 cyfr szesnastkowych rozdzielonych dwukropkiem.

Co dalej?

Masz już klucz interfejsu API, więc utwórz i skonfiguruj projekt zgodnie z opisem w artykule Konfigurowanie projektu Android Studio.