محصولات پلتفرم نقشههای Google با محدود کردن تماسهای API به کسانی که اعتبارنامههای احراز هویت مناسب را ارائه میکنند، از استفاده غیرمجاز محافظت میشوند. این اعتبارنامه ها به شکل یک کلید API هستند - یک رشته الفبایی عددی منحصر به فرد که حساب صورتحساب Google شما را با پروژه شما و با API یا SDK خاص مرتبط می کند.
این راهنما نحوه ایجاد، محدود کردن و استفاده از کلید API خود را برای پلتفرم نقشه های Google نشان می دهد.
قبل از شروع
قبل از شروع استفاده از Maps JavaScript API، به پروژه ای با حساب صورتحساب و فعال بودن Maps JavaScript API نیاز دارید. برای کسب اطلاعات بیشتر، به راهاندازی در Cloud Console مراجعه کنید.
کلیدهای API ایجاد کنید
کلید API یک شناسه منحصر به فرد است که درخواست های مرتبط با پروژه شما را برای اهداف استفاده و صورتحساب احراز هویت می کند. شما باید حداقل یک کلید API مرتبط با پروژه خود داشته باشید.
برای ایجاد یک کلید API:
کنسول
به صفحه پلتفرم نقشه های گوگل > اعتبارنامه بروید.
- در صفحه اعتبارنامهها ، روی ایجاد اعتبارنامه > کلید API کلیک کنید.
گفتگوی ایجاد شده کلید API کلید API تازه ایجاد شده شما را نمایش می دهد. - روی Close کلیک کنید.
کلید API جدید در صفحه Credentials در زیر کلیدهای API فهرست شده است.
(به یاد داشته باشید که کلید API را قبل از استفاده از آن در تولید محدود کنید .)
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
درباره Google Cloud SDK ، نصب Cloud SDK و دستورات زیر بیشتر بخوانید:
کلیدهای API را محدود کنید
Google اکیداً توصیه میکند که کلیدهای API خود را با محدود کردن استفاده از آنها به آن دسته از APIهای مورد نیاز برای برنامهتان محدود کنید. محدود کردن کلیدهای API با محافظت از برنامه شما در برابر درخواستهای غیرمجاز، امنیت را به آن اضافه میکند. برای اطلاعات بیشتر، بهترین شیوه های امنیتی API را ببینید.
برای محدود کردن یک کلید API:
کنسول
به صفحه پلتفرم نقشه های گوگل > اعتبارنامه بروید.
- کلید API را که می خواهید محدودیتی روی آن تنظیم کنید، انتخاب کنید. صفحه ویژگی کلید API ظاهر می شود.
- در زیر کلید محدودیتها ، محدودیتهای زیر را تنظیم کنید:
- محدودیت های کاربردی:
- برای پذیرش درخواستها از فهرست وبسایتهایی که ارائه میکنید، ارجاعدهندههای HTTP (وبسایتها) را از فهرست محدودیتهای برنامه انتخاب کنید.
- یک یا چند وب سایت ارجاع دهنده را مشخص کنید. میتوانید از نویسههای wildcard برای مجوز دادن به همه زیردامنهها استفاده کنید (برای مثال،
https://*.google.com
همه سایتهایی را که به.google.com
ختم میشوند، در صورت دسترسی از طریق HTTPS میپذیرد). توجه داشته باشید که اگر www.domain.com را مشخص کنید، به عنوان یک علامت عام www.domain.com/* عمل می کند و هر مسیر فرعی را در نام میزبان مجاز می کند. طرح های ارجاع دهندهhttps://
وhttp://
را همانطور که هست مشخص کنید. برای پروتکل های URL دیگر، باید از یک نمایش خاص استفاده کنید. برای مثال،file:///path/to/
به صورت__file_url__//path/to/*
فرمت کنید. پس از فعال کردن وبسایتها، حتماً بر میزان استفاده خود نظارت داشته باشید تا مطمئن شوید که با انتظارات شما مطابقت دارد. پروتکل های زیر پشتیبانی می شوند:about://
,app://
,applewebdata://
,asset://
,chrome://
,content://
,file://
,ftp://
,ionic://
,local://
,ms-appx://
,ms-appx-web://
,ms-local-stream://
,prism://
,qrc://
,res://
,saphtmlp://
. - محدودیت های API:
- روی Restrict key کلیک کنید.
- Maps JavaScript API را از منوی کشویی Select APIs انتخاب کنید. اگر Maps JavaScript API در لیست نیست، باید آن را فعال کنید .
- اگر پروژه شما از کتابخانه مکانها استفاده میکند، Places API را نیز انتخاب کنید. به طور مشابه، اگر پروژه شما از سرویسهای دیگری در API جاوا اسکریپت استفاده میکند ( خدمات مسیرها ، سرویس ماتریس فاصله ، سرویس ارتفاع ، و/یا سرویس کدگذاری جغرافیایی )، باید API مربوطه را نیز در این لیست فعال و انتخاب کنید.
- برای نهایی کردن تغییرات خود، روی ذخیره کلیک کنید.
Cloud SDK
فهرست کلیدهای موجود
gcloud services api-keys list --project="PROJECT"
محدودیت های موجود در کلید موجود را پاک کنید.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
محدودیت های جدیدی را روی کلید موجود تنظیم کنید.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api-target="maps-backend.googleapis.com" --allowed-referrers="referer"
درباره Google Cloud SDK ، نصب Cloud SDK و دستورات زیر بیشتر بخوانید:
کلید API را به درخواست خود اضافه کنید
باید با هر درخواست Maps JavaScript API یک کلید API اضافه کنید. در مثال زیر، YOUR_API_KEY
با کلید 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>