Produkty Google Maps Platform są chronione przed nieuprawnionym użyciem przez ograniczenie wywołań interfejsu API do tych, które zapewniają odpowiednie dane logowania. Te dane logowania mają postać klucza interfejsu API – unikalnego ciągu alfanumerycznego, który łączy Twoje konto rozliczeniowe Google z projektem oraz z określonym interfejsem API lub pakietem SDK.
Z tego przewodnika dowiesz się, jak utworzyć klucz interfejsu API Google Maps Platform, ograniczyć jego użycie i z niego korzystać.
Zanim zaczniesz
Zanim zaczniesz korzystać z interfejsu Maps JavaScript API, musisz mieć projekt z włączonym kontem rozliczeniowym i interfejsem Maps JavaScript API. Więcej informacji znajdziesz w artykule Konfigurowanie w konsoli Google Cloud.
Tworzenie kluczy interfejsu API
Klucz interfejsu API to unikalny identyfikator używany do uwierzytelniania żądań powiązanych z projektem na potrzeby wykorzystania i płatności. Z projektem musi być powiązany co najmniej 1 klucz API.
Aby utworzyć klucz interfejsu API:
Konsola
-
Otwórz stronę Google Maps Platform > Dane logowania.
-
Na stronie Dane logowania kliknij Utwórz dane logowania > Klucz interfejsu API.
W oknie Utworzono klucz API wyświetli się nowo utworzony klucz API. -
Kliknij Zamknij.
Nowy klucz interfejsu API znajdziesz na stronie Dane logowania w sekcji Klucze API.
(Pamiętaj, aby ograniczyć dostęp do klucza API przed użyciem go w produkcji).
Pakiet SDK Cloud
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Dowiedz się więcej o pakiecie Google Cloud SDK, instalacji Cloud SDK i tych poleceniach:
Ograniczanie kluczy interfejsu API
Zdecydowanie zalecamy ograniczenie kluczy interfejsu API tylko do tych interfejsów API, które są potrzebne do działania aplikacji. Ograniczenie dostępu do kluczy interfejsu API zwiększa bezpieczeństwo aplikacji, chroniąc ją przed nieuzasadnionymi żądaniami. Więcej informacji znajdziesz w artykule Sprawdzone metody dotyczące bezpieczeństwa interfejsu API.
Aby ograniczyć klucz interfejsu API:
Konsola
-
Otwórz stronę Google Maps Platform > Dane logowania.
- Wybierz klucz interfejsu API, dla którego chcesz ustawić ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
- W sekcji Ograniczenia klucza ustaw te ograniczenia:
- Ograniczenia aplikacji:
- Aby akceptować żądania z listy podanych przez Ciebie witryn, na liście Ograniczenia aplikacji kliknij Odsyłające adresy HTTP (witryny internetowe).
- Podaj co najmniej 1 witrynę odsyłającą. Możesz użyć symboli wieloznacznych, aby autoryzować wszystkie subdomeny (na przykład
https://*.google.com
akceptuje wszystkie witryny kończące się na.google.com
, gdy są dostępne przez HTTPS). Pamiętaj, że jeśli określisz www.domena.com, będzie ono działać jako symbol wieloznaczny www.domena.com/* i autoryzować dowolną ścieżkę podrzędną w tym adresie hosta. W przypadku schematówhttps://
ihttp://
użyj ich w postaci domyślnej. W przypadku innych protokołów adresów URL musisz użyć specjalnej reprezentacji. Na przykład:file:///path/to/
w formacie__file_url__//path/to/*
. Po włączeniu witryn sprawdź, czy ich użycie jest zgodne z Twoimi oczekiwaniami. Obsługiwane są następujące 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:
- Kliknij Ogranicz dostęp do klucza.
- W menu Wybierz interfejsy API kliknij Maps JavaScript API. Jeśli interfejs Maps JavaScript API nie jest wymieniony, musisz go włączyć.
- Jeśli Twój projekt korzysta z Places Library, wybierz też Places API. Podobnie, jeśli Twój projekt korzysta z innych usług w JavaScript API (Directions API, Distance Matrix API, Elevation API lub Geocoding API), musisz też włączyć i wybrać odpowiedni interfejs API na tej liście.
- Aby zatwierdzić zmiany, kliknij Zapisz.
Pakiet SDK Cloud
Wyświetl listę istniejących kluczy.
gcloud services api-keys list --project="PROJECT"
usunąć istniejące ograniczenia dotyczące dotychczasowego 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"
Dowiedz się więcej o pakiecie Google Cloud SDK, instalacji Cloud SDK i tych poleceniach:
Dodawanie klucza interfejsu API do żądania
W każdym żądaniu interfejsu Maps JavaScript API musisz podać klucz interfejsu API.
W tym przykładzie zastąp YOUR_API_KEY
swoim kluczem 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>