استخدام مفاتيح واجهة برمجة التطبيقات

تتم حماية منتجات "منصة خرائط Google" من الاستخدام غير المصرّح به من خلال حظر طلبات البيانات من واجهة برمجة التطبيقات. إلى أولئك الذين يقدمون بيانات اعتماد مصادقة مناسبة. بيانات الاعتماد هذه في شكل مفتاح واجهة برمجة التطبيقات - وهو سلسلة أبجدية رقمية فريدة تربط حساب الفوترة في Google المشروع، وباستخدام واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) المحددة.

يوضِّح هذا الدليل كيفية إنشاء مفتاح واجهة برمجة التطبيقات وتقييده واستخدامه في "منصة خرائط Google".

قبل البدء

قبل البدء في استخدام واجهة برمجة تطبيقات JavaScript للخرائط، ستحتاج إلى مشروع يحتوي على حساب فوترة تم تفعيل واجهة برمجة تطبيقات JavaScript للخرائط. للمزيد من المعلومات، يُرجى الاطّلاع على الإعداد في Cloud Console.

إنشاء مفاتيح واجهة برمجة التطبيقات

مفتاح واجهة برمجة التطبيقات هو معرّف فريد يصادق على الطلبات المرتبطة بمشروعك لأغراض الاستخدام والفوترة. يجب أن يكون لديك مفتاح واجهة برمجة تطبيقات واحد على الأقل مرتبط بمشروعك.

لإنشاء مفتاح واجهة برمجة التطبيقات:

وحدة التحكّم

  1. انتقل إلى Google Maps Platform > بيانات الاعتماد.

    الانتقال إلى صفحة "بيانات الاعتماد"

  2. في صفحة بيانات الاعتماد، انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات.
    يعرض مربع الحوار تم إنشاء مفتاح واجهة برمجة التطبيقات مفتاح واجهة برمجة التطبيقات الذي تم إنشاؤه حديثًا.
  3. انقر على إغلاق.
    يتم إدراج مفتاح واجهة برمجة التطبيقات الجديد في صفحة بيانات الاعتماد ضمن مفاتيح واجهة برمجة التطبيقات.
    (تذكَّر تقييد واجهة برمجة التطبيقات قبل استخدامه في الإنتاج).

SDK للسحاب

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

يمكنك قراءة المزيد عن حزمة تطوير البرامج (SDK) في Google Cloud , تثبيت Cloud SDK ، بالإضافة إلى الأوامر التالية:

تقييد مفاتيح واجهة برمجة التطبيقات

تنصح Google بشدة بتقييد مفاتيح واجهة برمجة التطبيقات من خلال حصر استخدامها على تلك المفاتيح واجهات برمجة التطبيقات المطلوبة لتطبيقك. يؤدي تقييد مفاتيح واجهة برمجة التطبيقات إلى تعزيز أمان تطبيقك من خلال وحمايتها من الطلبات غير المبررة. لمزيد من المعلومات، يُرجى مراجعة أفضل ممارسات أمان واجهة برمجة التطبيقات.

لتقييد مفتاح واجهة برمجة التطبيقات:

وحدة التحكّم

  1. انتقل إلى Google Maps Platform > بيانات الاعتماد.

    الانتقال إلى صفحة "بيانات الاعتماد"

  2. اختَر مفتاح واجهة برمجة التطبيقات الذي تريد وضع قيود عليه. ستظهر لك صفحة خاصية مفتاح واجهة برمجة التطبيقات.
  3. ضمن قيود المفاتيح، اضبط القيود التالية:
    • قيود التطبيقات:
      1. لقبول الطلبات من قائمة المواقع الإلكترونية التي توفِّرها، اختَر HTTP. المُحيلين (مواقع الويب) من قائمة التطبيقات القيود.
      2. حدِّد موقعًا إلكترونيًا واحدًا أو أكثر من المواقع الإلكترونية المُحيلة. يمكنك استخدام حرف البدل أحرفًا للسماح لجميع النطاقات الفرعية (على سبيل المثال، يقبل 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://.
    • قيود واجهة برمجة التطبيقات:
      1. انقر على تقييد المفتاح.
      2. اختَر واجهة برمجة تطبيقات JavaScript للخرائط من القائمة المنسدلة اختيار واجهات برمجة التطبيقات. إذا كانت واجهة برمجة تطبيقات JavaScript للخرائط غير مُدرجة، ستحتاج إلى تفعيلها
      3. إذا كان مشروعك يستخدم مكتبة الأماكن، اختَر أيضًا واجهة برمجة تطبيقات الأماكن. وبالمثل، إذا كان مشروعك يستخدم خدمات أخرى في JavaScript API. (خدمة الاتجاهات، خدمة مصفوفة المسافة، خدمة تحديد الارتفاع و/أو خدمة الترميز الجغرافي) يجب أيضًا تفعيل واجهة برمجة التطبيقات المقابلة واختيارها في هذه القائمة.
  4. لإتمام التغييرات، انقر على حفظ.

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"

يمكنك قراءة المزيد عن حزمة تطوير البرامج (SDK) في Google Cloud , تثبيت Cloud SDK ، بالإضافة إلى الأوامر التالية:

إضافة مفتاح واجهة برمجة التطبيقات إلى طلبك

يجب تضمين مفتاح واجهة برمجة تطبيقات مع كل طلب من طلبات واجهة برمجة تطبيقات JavaScript للخرائط. في المثال التالي، استبدِل YOUR_API_KEY بـ مفتاح واجهة برمجة التطبيقات.

<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>