Użyj kluczy interfejsu API

Usługi Google Maps Platform są zabezpieczane przed nieautoryzowanym użyciem przez ograniczenie wywołań interfejsu API do tych, którzy podają odpowiednie dane uwierzytelniające. Dane logowania mają postać klucz interfejsu API – niepowtarzalny ciąg alfanumeryczny, który wiąże konto rozliczeniowe Google z projektu i za pomocą określonego interfejsu API lub pakietu SDK.

Z tego przewodnika dowiesz się, jak utworzyć klucz interfejsu API dla Google Maps Platform, jak ograniczyć do niego dostęp i jak go używać.

Zanim zaczniesz

Zanim zaczniesz korzystać z Maps JavaScript API, potrzebujesz projektu z kontem rozliczeniowym i Interfejs Maps JavaScript API został włączony. Więcej informacji znajdziesz w artykule Konfiguracja w konsoli Cloud.

Tworzenie kluczy interfejsu API

Klucz interfejsu API to unikalny identyfikator, który uwierzytelnia żądania powiązane z projektem w: użytkowania i rozliczeń. Musisz mieć co najmniej 1 klucz interfejsu API powiązany z projektem.

Aby utworzyć klucz interfejsu API:

Konsola

  1. Otwórz Google Maps Platform > Dane logowania.

    Otwórz stronę Dane logowania

  2. Na stronie Dane logowania kliknij Utwórz dane logowania > API.
    W oknie Utworzono klucz interfejsu API pojawi się nowo utworzony klucz interfejsu API.
  3. Kliknij Zamknij.
    Nowy klucz interfejsu API znajdziesz na stronie Dane logowania w sekcji Klucze interfejsu API.
    (Pamiętaj o ograniczeniu dostępu do interfejsu API przed użyciem w środowisku produkcyjnym).

Pakiet SDK Cloud

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

Przeczytaj więcej na temat Pakiet SDK Google Cloud , Instalacja pakietu SDK Cloud oraz tych poleceń:

Ogranicz klucze interfejsu API

Zdecydowanie zalecamy ograniczenie użycia kluczy API do tych, które Interfejsy API potrzebne do aplikacji. Ograniczenie kluczy interfejsu API zwiększa bezpieczeństwo aplikacji przez i chronić je przed nieuzasadnionymi żądaniami. Więcej informacji: Sprawdzone metody zabezpieczania interfejsów API

Aby ograniczyć klucz interfejsu API:

Konsola

  1. Otwórz Google Maps Platform > Dane logowania.

    Otwórz stronę Dane logowania

  2. Wybierz klucz interfejsu API, dla którego chcesz zastosować ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
  3. W sekcji Ograniczenia kluczy ustaw te ograniczenia:
    • Ograniczenia aplikacji:
      1. Aby akceptować żądania z listy dostarczanych przez Ciebie witryn, wybierz opcję HTTP strony odsyłające (witryny internetowe) z listy aplikacji, ograniczenia.
      2. Podaj co najmniej jedną witrynę odsyłającą. Możesz użyć symbolu wieloznacznego do autoryzowania wszystkich subdomen (na przykład https://*.google.com akceptuje wszystkie witryny zakończone na .google.com w przypadku dostępu przez HTTPS). Pamiętaj, że jeśli podasz www.domena.com, jest to symbol wieloznaczny www.domena.com/*, a autoryzuje ścieżkę podrzędną tej nazwy hosta. Określ schematy stron odsyłających https:// i http:// w obecnym stanie. W przypadku innych protokołów adresów URL musisz użyć specjalnego reprezentacji. Dla: przykład, format file:///path/to/ jako __file_url__//path/to/* Po włączeniu witryn pamiętaj, aby sprawdzać czas użytkowania, odpowiada Twoim oczekiwaniom. Obsługiwane są te protokoły: about://, app://, applewebdata:// asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web:// ms-local-stream://, prism://, qrc:// res://, saphtmlp://.
    • Ograniczenia interfejsów API:
      1. Kliknij Ogranicz klucz.
      2. Wybierz Maps JavaScript API z menu Wybierz interfejsy API. Jeśli interfejsu Maps JavaScript API nie ma na liście, musisz: włącz ją.
      3. Jeśli Twój projekt korzysta z Biblioteki miejsc, wybierz też Places API. Podobnie, jeśli Twój projekt używa innych usług w interfejsie JavaScript API (Usługa wskazówek dojazdu, Usługa macierzy odległości, Usługa wysokości względnej lub usługa geokodowania), musisz też włączyć i wybrać odpowiedni interfejs API z tej listy.
  4. Aby zastosować zmiany, kliknij Zapisz.

Pakiet SDK Cloud

Wyświetl listę istniejących kluczy.

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

Usuń ograniczenia dotyczące istniejącego klucza.

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

Ustaw nowe ograniczenia dla istniejącego klucza.

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --api-target="maps-backend.googleapis.com"
    --allowed-referrers="referer"

Przeczytaj więcej na temat Pakiet SDK Google Cloud , Instalacja pakietu SDK Cloud oraz tych poleceń:

Dodaj klucz interfejsu API do żądania

Do każdego żądania interfejsu Maps JavaScript API musisz dołączyć klucz interfejsu API. W przykładzie poniżej zastąp YOUR_API_KEY swoją nazwą klucz interfejsu API.

<script>
  (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
    key: "YOUR_API_KEY",
    v: "weekly",
    // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.).
    // Add other bootstrap parameters as needed, using camel case.
  });
</script>