يجب أن تستخدم التطبيقات والمشاريع التي تستخدم واجهات برمجة التطبيقات وحِزم تطوير البرامج (SDK) في "منصة خرائط Google" مفاتيح واجهة برمجة التطبيقات أو بروتوكول OAuth 2.0 إذا كان متاحًا، وذلك للمصادقة على نفسها.
توضّح لك أفضل الممارسات هذه كيفية تأمين إذن الوصول إلى "منصة خرائط Google".
إذا أردت استخدام OAuth 2.0 للسماح بنقل البيانات من خادم إلى خادم، ابحث عن موضوع OAuth في مستندات واجهة برمجة التطبيقات. لمزيد من التفاصيل، يُرجى الاطّلاع على استخدام OAuth للتطبيقات التي تعمل على جهة الخادم.
بالإضافة إلى تطبيق قيود على التطبيقات ومفاتيح واجهة برمجة التطبيقات، اتّبِع أي ممارسات أمان تنطبق على منتجات معيّنة في "منصة خرائط Google". على سبيل المثال، اطّلِع على Maps JavaScript API أدناه في القيود الموصى بها على التطبيقات وواجهات برمجة التطبيقات.
إذا كانت مفاتيح واجهة برمجة التطبيقات قيد الاستخدام حاليًا، يُرجى مراجعة الاقتراحات أدناه في قسم في حال فرض قيود على مفتاح واجهة برمجة تطبيقات قيد الاستخدام.
للحصول على مزيد من التفاصيل حول التواقيع الرقمية التي تتيحها واجهة Maps Static API وواجهة Street View Static API، يُرجى الاطّلاع على دليل التوقيعات الرقمية.
أفضل الممارسات المقترَحة
لتعزيز الأمان وتجنُّب تحصيل رسوم منك مقابل الاستخدام غير المصرّح به، اتّبِع أفضل ممارسات أمان واجهات برمجة التطبيقات التالية لجميع واجهات برمجة التطبيقات أو حِزم تطوير البرامج (SDK) أو الخدمات في "منصة خرائط Google":
يُنصح باستخدامها في جميع حالات استخدام مفتاح واجهة برمجة التطبيقات
تقييد مفاتيح واجهة برمجة التطبيقات
استخدام مفاتيح واجهة برمجة تطبيقات منفصلة لكل تطبيق
حذف مفاتيح واجهة برمجة التطبيقات غير المستخدَمة
التحقّق من استخدام مفتاح واجهة برمجة التطبيقات
توخَّ الحذر عند تدوير مفاتيح واجهة برمجة التطبيقات
تقسيم الاستخدام من جهة العميل ومن جهة الخادم إلى مشاريع منفصلة
اقتراحات إضافية للتطبيقات من جهة العميل
استخدام حِزم تطوير البرامج (SDK) من جهة العميل
تأمين طلبات خدمة الويب من جهة العميل
اقتراحات إضافية للمواقع الإلكترونية أو التطبيقات من جهة العميل التي تستخدم واجهات برمجة تطبيقات الويب الثابتة
اقتراحات إضافية للتطبيقات من جهة الخادم التي تستخدم خدمات الويب
حماية مفاتيح واجهة برمجة التطبيقات الخاصة بخدمات الويب
استخدام OAuth للتطبيقات من جهة الخادم
في حال تقييد أو تدوير مفتاح واجهة برمجة تطبيقات قيد الاستخدام
قبل تغيير مفتاح واجهة برمجة التطبيقات، تحقَّق من استخدام مفتاح واجهة برمجة التطبيقات هذه الخطوة مهمة بشكل خاص إذا كنت تضيف قيودًا على مفتاح مستخدَم حاليًا في تطبيق متاح للجميع.
بعد تغيير المفتاح، عدِّل جميع تطبيقاتك باستخدام مفاتيح واجهة برمجة التطبيقات الجديدة، حسب الحاجة.
إذا لم يتم اختراق مفتاح واجهة برمجة التطبيقات ولم يتم إساءة استخدامه بشكل نشط، يمكنك نقل تطبيقاتك إلى عدة مفاتيح جديدة لواجهة برمجة التطبيقات بالسرعة التي تناسبك، مع ترك مفتاح واجهة برمجة التطبيقات الأصلي بدون تغيير إلى أن تلاحظ نوعًا واحدًا فقط من الزيارات، ويمكن حينئذٍ تطبيق قيود على مفتاح واجهة برمجة التطبيقات بأمان باستخدام نوع واحد من قيود التطبيقات بدون التسبّب في انقطاع غير مقصود للخدمة.
لمزيد من التعليمات، يُرجى الاطّلاع على مقالة نقل البيانات إلى مفاتيح واجهة برمجة تطبيقات متعددة.
يمكنك مراقبة الاستخدام بمرور الوقت، ومعرفة متى تم نقل واجهات برمجة تطبيقات وأنواع أنظمة أساسية ونطاقات معيّنة من مفتاح واجهة برمجة التطبيقات القديم قبل اختيار حظر المفتاح القديم أو حذفه. لمزيد من المعلومات، اطّلِع على إعداد التقارير والمراقبة والمقاييس.
إذا تم اختراق مفتاح واجهة برمجة التطبيقات، عليك اتّخاذ إجراءات أسرع لتأمين المفتاح وإيقاف إساءة الاستخدام. في تطبيقات Android وiOS، لا يتم استبدال المفاتيح إلا بعد أن يحدّث العملاء تطبيقاتهم. تعديل المفاتيح أو استبدالها في صفحات الويب أو في التطبيقات من جهة الخادم أسهل بكثير، ولكن قد يتطلّب ذلك تخطيطًا دقيقًا وعملاً سريعًا.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التعامل مع الاستخدام غير المصرَّح به لمفتاح واجهة برمجة التطبيقات.
مزيد من المعلومات
القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات
تقييد مفاتيح واجهة برمجة التطبيقات
من أفضل الممارسات دائمًا تقييد مفاتيح واجهة برمجة التطبيقات بنوع واحد من قيود التطبيقات وقيد واحد أو أكثر من قيود واجهة برمجة التطبيقات. للاطّلاع على القيود المقترَحة حسب واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) أو خدمة JavaScript، يُرجى مراجعة القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات أدناه.
قيود التطبيقات: يمكنك حصر استخدام مفتاح واجهة برمجة التطبيقات على منصات معيّنة: تطبيقات Android أو iOS، أو مواقع إلكترونية معيّنة لتطبيقات من جهة العميل، أو عناوين IP معيّنة أو شبكات فرعية بتنسيق CIDR للتطبيقات من جهة الخادم التي تُصدر طلبات بيانات من واجهة برمجة التطبيقات REST API لخدمات الويب.
يمكنك فرض قيود على مفتاح من خلال إضافة قيد واحد أو أكثر من قيود التطبيق من الأنواع التي تريد السماح بها، وبعد ذلك لن يُسمح إلا بالطلبات الواردة من هذه المصادر.
قيود واجهة برمجة التطبيقات: يمكنك فرض قيود على واجهات برمجة التطبيقات أو حِزم SDK أو الخدمات التي يمكن استخدام مفتاح واجهة برمجة التطبيقات عليها في "منصة خرائط Google". تسمح قيود واجهة برمجة التطبيقات فقط بالطلبات المرسَلة إلى واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) التي تحدّدها. يمكنك تحديد أي عدد من القيود على واجهة برمجة التطبيقات حسب الحاجة لأي مفتاح واجهة برمجة تطبيقات. تتضمّن قائمة واجهات برمجة التطبيقات المتاحة جميع واجهات برمجة التطبيقات المفعَّلة في مشروع معيّن.
ضبط قيود على التطبيقات لمفتاح واجهة برمجة تطبيقات
افتح صفحة بيانات اعتماد "منصة خرائط Google" في Google Cloud Console.
اختَر مفتاح واجهة برمجة التطبيقات الذي تريد حظره.
في صفحة تعديل مفتاح واجهة برمجة التطبيقات، ضِمن قيود المفتاح، اختَر ضبط قيد على التطبيق.

اختَر أحد أنواع القيود وقدِّم المعلومات المطلوبة باتّباع قائمة القيود.
نوع الحظر الوصف المواقع الإلكترونية حدِّد موقعًا إلكترونيًا واحدًا أو أكثر من المواقع الإلكترونية المُحيلة. - مخطّطات معرّف الموارد المنتظم (URI) للمُحيل المتوافقة عالميًا هي
httpsوhttp. لا نضمن عمل المخططات الأخرى بشكل صحيح، لأنّ متصفّحات الويب الحديثة لن ترسل عنوان `Referer` في الطلبات الصادرة لأسباب تتعلّق بالخصوصية. - يجب دائمًا تقديم سلسلة المحيل
https://google.com� - يمكنك استخدام أحرف البدل للسماح بجميع النطاقات الفرعية. على سبيل المثال، تقبل
https://*.google.comجميع المواقع الإلكترونية التي تنتهي بـ.google.com. - يجب توخّي الحذر عند السماح بإحالات إلى عناوين URL كاملة، مثل
https://google.com/some/path، لأنّ معظم متصفّحات الويب ستزيل المسار من الطلبات الواردة من مصادر متعددة لأسباب تتعلّق بالخصوصية.
عناوين IP حدِّد عنوان IPv4 أو IPv6 واحدًا أو أكثر، أو شبكات فرعية باستخدام تدوين CIDR. يجب أن تتطابق عناوين IP مع عنوان المصدر الذي ترصده خوادم "منصة خرائط Google". في حال استخدام ترجمة عنوان الشبكة (NAT)، يتوافق هذا العنوان عادةً مع عنوان IP العام لجهازك. تطبيقات Android أضِف اسم حزمة Android (من ملف
AndroidManifest.xml) والملف المرجعي لشهادة توقيع SHA-1 لكل تطبيق Android تريد منحه الإذن.- اختَر تطبيقات Android.
- انقر على + إضافة.
- أدخِل اسم الحزمة والملف المرجعي لشهادة SHA-1. على سبيل المثال:
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
- انقر على حفظ.
هناك نوعان من الشهادات:
- شهادة تصحيح الأخطاء: لا تستخدم هذا النوع من الشهادات إلا مع التطبيقات التي تختبرها والرموز الأخرى غير المخصّصة للإنتاج. لا تحاول نشر تطبيق موقَّع بشهادة تصحيح الأخطاء. تنشئ أدوات حزمة تطوير البرامج (SDK) لنظام التشغيل Android هذه الشهادة تلقائيًا عند تشغيل إصدار مخصص لتصحيح الأخطاء.
- شهادة الإصدار: استخدِم هذه الشهادة عندما تكون مستعدًا لإصدار تطبيقك في متجر تطبيقات. تنشئ أدوات حزمة تطوير البرامج (SDK) لنظام التشغيل Android هذه الشهادة عند تشغيل بنية الإصدار.
لمزيد من المعلومات حول توقيع تطبيقات Android وشهاداتها، يُرجى الاطّلاع على دليل توقيع تطبيقك.
إذا كنت تستخدم ميزة "توقيع التطبيق" من Play، يمكنك الاطّلاع على التعامل مع موفّري واجهات برمجة التطبيقات لمعرفة كيفية الحصول على الملف المرجعي لشهادة التوقيع. إذا كنت تدير مفتاح التوقيع الخاص بك، يمكنك الاطّلاع على توقيع تطبيقك بنفسك أو الرجوع إلى التعليمات الخاصة ببيئة الإنشاء.
تطبيقات iOS أضِف معرّف الحزمة لكل تطبيق iOS تريد تفويضه.
- اختَر تطبيقات iOS.
- انقر على إضافة.
- أضِف معرّف الحزمة لقبول الطلبات من تطبيق iOS الذي يحمل هذا المعرّف.
- انقر على حفظ.
للحصول على اقتراحات بشأن قيود التطبيقات، اطّلِع على قيود التطبيقات المقترَحة.
- مخطّطات معرّف الموارد المنتظم (URI) للمُحيل المتوافقة عالميًا هي
انقر على حفظ.
ضبط قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات
افتح صفحة بيانات اعتماد منصة خرائط Google في Google Cloud Console.
اختَر مفتاح واجهة برمجة التطبيقات الذي تريد حظره.
في صفحة تعديل مفتاح واجهة برمجة التطبيقات، ضمن قيود واجهة برمجة التطبيقات:
انقر على مفتاح التقييد.
افتح اختيار واجهات برمجة التطبيقات واختَر واجهات برمجة التطبيقات أو حزم تطوير البرامج (SDK) التي تريد أن يصل إليها تطبيقك باستخدام مفتاح واجهة برمجة التطبيقات.
إذا لم تكن واجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) مُدرَجة، عليك تفعيلها. لمعرفة التفاصيل، يُرجى الاطّلاع على كيفية تفعيل واجهة برمجة تطبيقات أو أكثر أو حِزمة تطوير برامج واحدة أو أكثر.

انقر على حفظ.
يصبح القيد جزءًا من تعريف مفتاح واجهة برمجة التطبيقات بعد هذه الخطوة. تأكَّد من تقديم التفاصيل المناسبة واختَر حفظ لحفظ قيود مفتاح واجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على دليل الحصول على مفتاح واجهة برمجة التطبيقات في المستندات الخاصة بواجهة برمجة التطبيقات أو حزمة تطوير البرامج (SDK) المحدّدة التي تهمّك.
للاطّلاع على القيود المقترَحة على واجهة برمجة التطبيقات، يُرجى الانتقال إلى القيود المقترَحة على واجهة برمجة التطبيقات.
التحقّق من استخدام مفتاح واجهة برمجة التطبيقات
إذا كنت تريد فرض قيود على مفاتيح واجهة برمجة التطبيقات بعد إنشائها، أو إذا كنت تريد معرفة واجهات برمجة التطبيقات التي يستخدمها مفتاح معيّن حتى تتمكّن من فرض قيود عليها، عليك التحقّق من استخدام مفتاح واجهة برمجة التطبيقات. توضّح لك هذه الخطوات الخدمات وطُرق واجهة برمجة التطبيقات التي يتم استخدام مفتاح واجهة برمجة التطبيقات فيها. إذا لاحظت أي استخدام يتجاوز خدمات "منصة خرائط Google"، عليك التحقيق لتحديد ما إذا كنت بحاجة إلى إضافة المزيد من القيود لتجنُّب الاستخدام غير المرغوب فيه. يمكنك استخدام مستكشف المقاييس في Cloud Console ضمن "منصة خرائط Google" للمساعدة في تحديد القيود التي يجب تطبيقها على مفتاح واجهة برمجة التطبيقات في ما يتعلّق بواجهة برمجة التطبيقات والتطبيق:
تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات
اختيار النوع الصحيح من قيود التطبيق باستخدام "مستكشف المقاييس"
تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات
تتيح لك تقارير المقاييس التالية تحديد واجهات برمجة التطبيقات التي تستخدم مفاتيح واجهة برمجة التطبيقات. استخدِم هذه التقارير لإجراء ما يلي:
- الاطّلاع على كيفية استخدام مفاتيح واجهة برمجة التطبيقات
- رصد الاستخدام غير المتوقّع
- المساعدة في التحقّق مما إذا كان من الآمن حذف مفتاح غير مستخدَم للحصول على معلومات حول حذف مفتاح واجهة برمجة التطبيقات، يُرجى الاطّلاع على حذف مفاتيح واجهة برمجة التطبيقات غير المستخدَمة.
عند تطبيق قيود على واجهة برمجة التطبيقات، استخدِم هذه التقارير لإنشاء قائمة بواجهات برمجة التطبيقات التي تريد السماح بها، أو للتحقّق من صحة الاقتراحات التي يتم إنشاؤها تلقائيًا بشأن القيود المفروضة على مفتاح واجهة برمجة التطبيقات. لمزيد من المعلومات حول القيود المقترَحة، يُرجى الاطّلاع على مقالة تطبيق القيود المقترَحة. لمزيد من المعلومات حول استخدام "مستكشف المقاييس"، يُرجى الاطّلاع على إنشاء رسوم بيانية باستخدام "مستكشف المقاييس".
الانتقال إلى مستكشف المقاييس في Google Cloud Console
سجِّل الدخول واختَر المشروع الذي تريد التحقّق من مفاتيح واجهة برمجة التطبيقات الخاصة به.
انتقِل إلى صفحة "مستكشف المقاييس" لنوع واجهة برمجة التطبيقات:
بالنسبة إلى مفاتيح واجهة برمجة التطبيقات التي تستخدم أي واجهة برمجة تطبيقات باستثناء Maps Embed API: انتقِل إلى صفحة مستكشف المقاييس.
بالنسبة إلى مفاتيح واجهة برمجة التطبيقات التي تستخدم Maps Embed API: انتقِل إلى مستكشف المقاييس.
فحص كل مفتاح من مفاتيح واجهة برمجة التطبيقات:
انقر على إضافة فلتر.
انقر على التصنيف
credential_id.اختَر القيمة المقابلة للمفتاح الذي تريد فحصه.
يُرجى ملاحظة واجهات برمجة التطبيقات التي يتم استخدام مفتاح واجهة برمجة التطبيقات هذا من أجلها، والتأكّد من أنّ الاستخدام متوقّع.
بعد الانتهاء، انقر على إزالة الفلتر في نهاية سطر الفلتر النشط لحذف الفلتر الإضافي.
كرِّر هذه الخطوات مع أي مفاتيح متبقية.
قصر استخدام مفاتيح واجهة برمجة التطبيقات على واجهات برمجة التطبيقات المستخدَمة فقط
في حال رصد استخدام غير مصرَّح به، اطّلِع على التعامل مع الاستخدام غير المصرَّح به لمفتاح واجهة برمجة التطبيقات.
اختيار نوع القيود المناسب على التطبيق باستخدام "مستكشف المقاييس"
بعد إثبات ملكية مفتاح واجهة برمجة التطبيقات واتّخاذ أي إجراءات ضرورية للتأكّد من أنّ مفتاح واجهة برمجة التطبيقات لا يُستخدم إلا في خدمات "منصة خرائط Google" التي يستخدمها، تأكَّد أيضًا من أنّ مفتاح واجهة برمجة التطبيقات يتضمّن قيود التطبيق الصحيحة.
إذا كان مفتاح واجهة برمجة التطبيقات يتضمّن قيودًا مقترَحة، طبِّقها. لمزيد من المعلومات، يُرجى الاطّلاع على تطبيق القيود المقترَحة على مفاتيح واجهة برمجة التطبيقات.
إذا لم يتضمّن مفتاح واجهة برمجة التطبيقات اقتراحات بشأن القيود، حدِّد نوع قيود التطبيق التي يجب تطبيقها استنادًا إلى platform_type التي تم الإبلاغ عنها باستخدام "مستكشف المقاييس":
الانتقال إلى مستكشف المقاييس في Google Cloud Console
سجِّل الدخول واختَر المشروع الذي تريد الاطّلاع على واجهات برمجة التطبيقات فيه.
انتقِل إلى صفحة "أداة استكشاف المقاييس" هذه: أداة استكشاف المقاييس.
افحص كل مفتاح واجهة برمجة تطبيقات:
انقر على إضافة فلتر.
انقر على التصنيف
credential_id.اختَر القيمة المقابلة للمفتاح الذي تريد فحصه.
بعد الانتهاء، انقر على إزالة الفلتر في نهاية سطر الفلتر النشط لحذف الفلتر الإضافي.
كرِّر هذه الخطوات مع أي مفاتيح متبقية.
بعد الحصول على نوع النظام الأساسي لمفاتيح واجهة برمجة التطبيقات، طبِّق قيود التطبيق على
platform_type:
PLATFORM_TYPE_JS: تطبيق قيود المواقع الإلكترونية على المفتاحPLATFORM_TYPE_ANDROID: تطبيق قيود تطبيقات Android على المفتاحPLATFORM_TYPE_IOS: تطبيق قيود تطبيقات iOS على المفتاحPLATFORM_TYPE_WEBSERVICE: قد تضطر إلى الاعتماد على القيود المفروضة على عنوان IP في المفتاح لحصره بشكل صحيح.للاطّلاع على الاقتراحات المتعلّقة بواجهتَي Maps Static API وStreet View Static API، يُرجى مراجعة مقالة حماية استخدام واجهة برمجة تطبيقات الويب الثابتة.
للاطّلاع على الاقتراحات المتعلّقة بواجهة Maps Embed API، يُرجى مراجعة المواقع الإلكترونية التي تستخدم واجهة Maps Embed API.
يستخدم مفتاح واجهة برمجة التطبيقات أنواعًا متعددة من الأنظمة الأساسية: لا يمكن تأمين حركة الزيارات بشكل صحيح باستخدام مفتاح واحد فقط لواجهة برمجة التطبيقات. عليك نقل بياناتك إلى مفاتيح واجهة برمجة تطبيقات متعددة. لمزيد من المعلومات، يُرجى الاطّلاع على المقالة الانتقال إلى استخدام مفاتيح متعددة لواجهة برمجة التطبيقات.
استخدام مفاتيح واجهة برمجة تطبيقات منفصلة لكل تطبيق
تحدّ هذه الممارسة من نطاق كل مفتاح. في حال اختراق أحد مفاتيح واجهة برمجة التطبيقات، يمكنك حذف المفتاح المتأثر أو تغييره بدون الحاجة إلى تعديل مفاتيح واجهة برمجة التطبيقات الأخرى. يمكنك إنشاء ما يصل إلى 300 مفتاح لواجهة برمجة التطبيقات لكل مشروع. لمزيد من المعلومات، يُرجى الاطّلاع على الحدود القصوى لمفاتيح واجهة برمجة التطبيقات.
على الرغم من أنّ استخدام مفتاح واجهة برمجة تطبيقات واحد لكل تطبيق هو الخيار الأفضل لأغراض الأمان، يمكنك استخدام مفاتيح مقيّدة على تطبيقات متعددة طالما أنّها تستخدم نوع القيود نفسه على التطبيقات.
تطبيق القيود المقترَحة على مفتاح واجهة برمجة التطبيقات
بالنسبة إلى بعض مالكي المشاريع والمحرّرين ومشرفي مفاتيح واجهة برمجة التطبيقات، تقترح وحدة تحكّم Google Cloud قيودًا معيّنة على مفاتيح واجهة برمجة التطبيقات غير المحظورة استنادًا إلى استخدامهم ونشاطهم على منصة خرائط Google.
في حال توفّرها، تظهر الاقتراحات كخيارات مملوءة مسبقًا في صفحة بيانات اعتماد "منصة خرائط Google".
واجهات برمجة التطبيقات وحزم تطوير البرامج (SDK) في "منصة خرائط Google" التي تتيح الاقتراحات المبرمَجة
Maps JavaScript API، بما في ذلك خدمة "الاتجاهات" (الإصدار القديم) خدمة "مصفوفة المسافات" (الإصدار القديم) خدمة "الارتفاع" خدمة "الترميز الجغرافي" فئة "المكان" أداة "الإكمال التلقائي للمكان" (الجديدة) واجهة برمجة التطبيقات الخاصة ببيانات "الإكمال التلقائي للمكان" مكتبة "الأماكن" خدمة "الأماكن" أداة "الإكمال التلقائي للمكان" حزمة واجهة المستخدم الخاصة بـ "الأماكن"
Maps Static API وStreet View Static API
Maps Embed API
حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android و"حزمة تطوير البرامج للتنقّل" على أجهزة Android و"حزمة تطوير برامج الأماكن" لأجهزة Android وPlaces UI Kit على Android
حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS، وحزمة تطوير البرامج للتنقّل على أجهزة iOS، وحزمة تطوير برامج الأماكن لأجهزة iOS، وحزمة تطوير برامج الأماكن بلغة Swift لأجهزة iOS، وحزمة أدوات "خرائط Google" الجاهزة للأماكن على أجهزة iOS
أسباب عدم ظهور اقتراح أو ظهور اقتراح غير مكتمل
أسباب عدم ظهور أي اقتراح
تستخدم (أيضًا) مفتاح واجهة برمجة التطبيقات في خدمات أخرى غير خدمات "منصة خرائط Google"، أو في خدمات "منصة خرائط Google" التي لا تتوافق بعد مع الاقتراحات التلقائية.
إذا رأيت استخدامًا في خدمات أخرى، لا تطبّق الاقتراح بدون إجراء ما يلي أولاً:
تأكَّد من أنّ استخدام واجهة برمجة التطبيقات الذي يظهر لك في "مستكشف المقاييس" ضمن Google Cloud Console هو استخدام مشروع.
أضِف يدويًا الخدمات الناقصة إلى قائمة واجهات برمجة التطبيقات التي سيتم منحها الإذن.
أضِف يدويًا أي قيود مفقودة على التطبيقات للخدمات التي تمت إضافتها إلى قائمة واجهة برمجة التطبيقات. إذا كان التطبيق الآخر الذي أضفته يتطلّب نوعًا مختلفًا من قيود التطبيق، يُرجى الاطّلاع على نقل البيانات إلى مفاتيح واجهة برمجة تطبيقات متعددة.
عدم استخدام مفتاح واجهة برمجة التطبيقات في حِزم تطوير البرامج (SDK) أو واجهات برمجة التطبيقات من جهة العميل
تستخدِم مفتاح واجهة برمجة التطبيقات في تطبيق أو موقع إلكتروني منخفض عدد الزيارات لم يشهد أي استخدام خلال آخر 60 يومًا.
لقد أنشأت مفتاحًا جديدًا مؤخرًا، أو نشرت مفتاحًا حاليًا في تطبيق جديد مؤخرًا. في هذه الحالة، ما عليك سوى الانتظار بضعة أيام أخرى حتى يتم تعديل الاقتراحات.
تستخدم مفتاح واجهة برمجة التطبيقات في تطبيقات متعددة تتطلّب أنواعًا متضاربة من قيود التطبيقات، أو تستخدم مفتاح واجهة برمجة التطبيقات نفسه في عدد كبير جدًا من التطبيقات أو المواقع الإلكترونية المختلفة. في كلتا الحالتين، ننصحك باتّباع أفضل الممارسات ونقل بياناتك إلى مفاتيح متعددة. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة نقل البيانات إلى مفاتيح API متعددة.
أسباب ظهور اقتراح غير مكتمل
إذا كنت تستخدم مفتاح واجهة برمجة التطبيقات في تطبيق أو موقع إلكتروني منخفض الاستخدام لم يتم استخدامه خلال آخر 60 يومًا.
لقد بدأت مؤخرًا استخدام مفتاح حالي على واجهة برمجة تطبيقات أو خدمة جديدة، ولم تتم معالجة مقاييس الاستخدام المعدَّلة بعد من خلال مسار اقتراحات حصر مفتاح واجهة برمجة التطبيقات التلقائي. قد يستغرق نشر مقاييس الاستخدام بضعة أيام.
إذا رأيت استخدامًا في خدمات أخرى، لا تطبّق الاقتراح بدون إجراء ما يلي أولاً:
تأكَّد من أنّ استخدام واجهة برمجة التطبيقات الذي يظهر لك في "مستكشف المقاييس" ضمن Google Cloud Console هو استخدام مشروع.
أضِف يدويًا الخدمات الناقصة إلى قائمة واجهات برمجة التطبيقات التي سيتم منحها الإذن.
أضِف يدويًا أي قيود على التطبيقات غير متوفّرة للخدمات التي تمت إضافتها إلى قائمة واجهة برمجة التطبيقات. إذا كان التطبيق الآخر الذي أضفته يتطلّب نوعًا مختلفًا من قيود التطبيق، يُرجى الاطّلاع على نقل البيانات إلى مفاتيح واجهة برمجة تطبيقات متعددة.
ما لم تكن بحاجة إلى تقييد مفتاح بشكل عاجل، مثلاً بسبب استخدام غير مصرّح به، يمكنك أيضًا الانتظار لمدة يوم أو يومَين إلى أن يتم تحديث الاقتراحات.
أسباب ظهور اقتراحات غير مرئية في الرسوم البيانية
أرسل تطبيقك أو موقعك الإلكتروني دفعات قصيرة جدًا من الزيارات. في هذه الحالة، يمكنك التبديل من عرض الرسم البياني إلى عرض الجدول أو كليهما، لأنّ الاستخدام يظل مرئيًا في وسيلة الإيضاح. لمزيد من المعلومات، يُرجى الاطّلاع على عرض أو إخفاء الوسائل الإيضاحية الكاملة للرسم البياني.
تأتي الزيارات من Maps Embed API. للحصول على التعليمات، يُرجى الاطّلاع على تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات.
تكون الزيارات الواردة من التطبيق أو الموقع الإلكتروني خارج النطاق الزمني المتاح في "مستكشف المقاييس" ضمن Google Cloud Console.
لتطبيق القيود المقترَحة، اتّبِع الخطوات التالية:
افتح صفحة بيانات اعتماد منصة خرائط Google في Google Cloud Console.
انقر على تطبيق القيود المقترَحة، إذا كان هذا الخيار متاحًا.

انقر على التحقّق من استخدام واجهة برمجة التطبيقات للتحقّق من الخدمات التي يتم استخدام مفتاح واجهة برمجة التطبيقات فيها. إذا ظهرت لك خدمات أخرى غير خدمات "منصة خرائط Google"، يُرجى إيقاف الفيديو مؤقتًا لمراجعة خطوات الاقتراح أعلاه يدويًا. يمكنك الاطّلاع على خطوات تحديد المشاكل وحلّها في بداية القسم تطبيق القيود المقترَحة على مفتاح واجهة برمجة التطبيقات.
تأكَّد من أنّ القيود التي تم ملؤها مسبقًا تتطابق مع المواقع الإلكترونية والتطبيقات التي تتوقّع استخدام مفتاح واجهة برمجة التطبيقات فيها.
أفضل الممارسات: يجب توثيق وإزالة أي قيود على التطبيقات أو واجهات برمجة التطبيقات غير المرتبطة بخدماتك. إذا حدثت مشكلة بسبب تبعية غير متوقّعة، يمكنك إعادة إضافة التطبيقات أو واجهات برمجة التطبيقات المطلوبة.
إذا تبيّن لك أنّ تطبيقًا أو موقعًا إلكترونيًا أو واجهة برمجة تطبيقات غير مضمّنة في اقتراحك، يمكنك إضافتها يدويًا أو الانتظار بضعة أيام إلى أن يتم تعديل الاقتراح.
إذا كنت بحاجة إلى مساعدة إضافية بشأن الاقتراح المقترَح، يُرجى التواصل مع فريق الدعم.
اختَر تطبيق.
ماذا أفعل إذا تم رفض طلبي بعد تطبيق أحد الاقتراحات؟
إذا لاحظت أنّه تم رفض تطبيق أو موقع إلكتروني بعد تطبيق قيود، ابحث عن قيود التطبيق التي عليك إضافتها في رسالة الخطأ الواردة في استجابة واجهة برمجة التطبيقات.
حِزم تطوير البرامج (SDK) وواجهات برمجة التطبيقات من جهة العميل
- التطبيقات المستندة إلى المتصفّح وعرض الويب
عادةً ما تحجب المتصفّحات الحديثة عنوان
Refererفي طلبات متعددة المصادر لأسباب تتعلّق بالخصوصية، وغالبًا ما يتم تجريده إلىOrigin. ومع ذلك، يعتمد السلوك الدقيق علىreferrer-policyالمطبّقة في الموقع الإلكتروني المضيف، وقد يختلف أيضًا استنادًا إلى متصفّح المستخدم وإصداره.عادةً ما يؤدي استخدام تطبيقات الويب لمخططات معرّفات الموارد المنتظمة (URI) غير الشفافة أو المحلية لتحميل المحتوى إلى إخفاء المتصفّح أو WebView الذي يعرض المحتوى لحقل
Refererبالكامل من أي طلبات صادرة، ما قد يؤدي إلى تعذُّر إرسال الطلبات باستخدام مفاتيح واجهة برمجة التطبيقات التي تتضمّن قيودًا على المواقع الإلكترونية.لمزيد من الإرشادات، يُرجى الاطّلاع على استضافة تطبيقاتك المستندة إلى المتصفّح على خادم.
تعليمات تحديد المشاكل وحلّها في التطبيقات المستندة إلى المتصفّح وعرض الويب:
بالنسبة إلى Maps JavaScript API، يُرجى الاطّلاع على وحدة تصحيح أخطاء المتصفّح للحصول على تفاصيل حول كيفية منح الإذن لتطبيقك.
تتوفّر أنظمة معرّفات الموارد المنتظمة (URI) غير الشائعة جزئيًا. إذا كانت بعض أجزاء تطبيقك لا تعمل مع مخطّط URI غريب، حتى بعد منح الإذن للمُحيل المطلوب، من المحتمل أن تحتاج إلى استضافة تطبيقك عن بُعد على خادم وتحميله عبر HTTPS (أو HTTP).
إذا كنت بحاجة إلى مساعدة بشأن أنظمة معرّفات الموارد المنتظمة (URI) غير الشائعة، يُرجى التواصل مع فريق الدعم.
ستعرض واجهات Maps Platform API الأخرى بشكل عام برنامج الإحالة الذي عليك تفويضه في ردّ الخطأ من واجهة برمجة التطبيقات، على افتراض أنّ العميل أرسل هذه المعلومات مع الطلب المرفوض.
لا تتوافق مع أنظمة معرّفات الموارد المنتظمة (URI) غير الشائعة.
- تطبيقات Android
استخدام Android Debug Bridge (adb) أو Logcat
- تطبيقات iOS
يُرجى الاطّلاع على عرض رسائل السجلّ.
التطبيقات التي ترسل طلبات إلى خدمات الويب مباشرةً
بالنسبة إلى التطبيقات التي تستدعي واجهة برمجة تطبيقات HTTPS REST الخاصة بـ "منصة خرائط Google" أو نقاط نهاية gRPC مباشرةً بدون حزمة تطوير برامج (SDK) من "منصة خرائط Google" من جهة العميل، يُرجى الاطّلاع على ما يلي:
- تطبيقات Android وiOS
إذا كان تطبيق Android أو iOS يستدعي خدمات "منصة خرائط Google" مباشرةً بدون استخدام أي من حزم تطوير البرامج (SDK) المتاحة لعملاء "منصة خرائط Google"، يُرجى الاطّلاع على تطبيقات Android وتطبيقات iOS للحصول على مزيد من النصائح حول تحديد المشاكل وحلّها، وتأمين طلبات خدمات الويب من جهة العميل للاطّلاع على أفضل ممارسات الأمان الحالية لحالات استخدام الأجهزة الجوّالة.
إذا كان تطبيقك يسجّل ردود الأخطاء من Maps Platform API، قد تكون التعليمات المذكورة أعلاه بشأن حِزم SDK من جهة العميل مفيدة أيضًا في تحديد المشاكل المتعلقة بالمصادقة وحلّها.
- التطبيقات من جهة الخادم
إنّ أفضل طريقة لتأمين التطبيقات من جهة الخادم التي تعتمد على مفاتيح واجهة برمجة التطبيقات هي من خلال القيود المفروضة على عناوين IP. إذا طبّقت قيودًا على عنوان IP لمفتاحك، وسجّلت خدمتك ردودًا تتضمّن أخطاء في واجهة برمجة التطبيقات Maps Platform، راجِع سجلات نظامك للحصول على مزيد من المعلومات. سيتضمّن ردّ الخطأ عنوان IP الخاص بالخادم الذي تحتاج إلى تفويضه.
- التطبيقات المستندة إلى المتصفّح أو Webview
مع أنّ واجهات برمجة التطبيقات الأحدث في "منصة خرائط Google"، مثل Maps Static API وStreet View Static API، ستتيح أيضًا إمكانية فرض قيود على الإحالات، يُرجى العِلم بأنّ متصفّحات الويب أو عروض الويب ستفرض على الأرجح قيودًا على العنوان
Refererليقتصر علىOriginفي الطلبات الواردة من مصادر متعددة، ومن المحتمل أن تمنع إرساله تمامًا، مثلاً للموارد التي يتم الوصول إليها محليًا أو للموارد التي يتم عرضها عبر بروتوكولات أخرى غير HTTP أو HTTPS.إذا لم تتمكّن من استخدام Maps JavaScript API في تطبيقك، ولم تنجح القيود على المواقع الإلكترونية، يمكنك الاطّلاع على تأمين طلبات خدمات الويب من جهة العميل لمعرفة كيفية إصدار طلبات خدمات الويب من "منصة خرائط Google" بشكل آمن من داخل تطبيقك المستند إلى المتصفّح من جهة العميل.
نصائح للتحقّق من القيود المفروضة على واجهة برمجة التطبيقات
للاطّلاع على القيود المطلوبة على واجهة برمجة التطبيقات، راجِع مقالة تحديد واجهات برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة التطبيقات.
إذا لم تتمكّن من تحديد القيود التي يجب تطبيقها:
- دوِّن القيود الحالية للرجوع إليها في المستقبل.
- يمكنك إزالتها مؤقتًا أثناء التحقيق في المشكلة. يمكنك الاطّلاع على سجلّ استخدامك بمرور الوقت باتّباع الخطوات الواردة في التحقّق من سجلّ استخدام مفتاح واجهة برمجة التطبيقات.
- يُرجى التواصل مع فريق الدعم إذا لزم الأمر.
حذف مفاتيح واجهة برمجة التطبيقات غير المستخدَمة
قبل حذف مفتاح لواجهة برمجة التطبيقات، تأكَّد من أنّه لا يُستخدم في مرحلة الإنتاج. إذا لم تكن هناك زيارات ناجحة، من المحتمل أن يكون المفتاح آمنًا للحذف. لمزيد من المعلومات، يُرجى الاطّلاع على التحقّق من استخدام مفتاح واجهة برمجة التطبيقات.
لحذف مفتاح واجهة برمجة تطبيقات، اتّبِع الخطوات التالية:
افتح صفحة بيانات اعتماد منصة خرائط Google في Google Cloud Console.
اختَر مفتاح واجهة برمجة التطبيقات الذي تريد حذفه.
انقر على الزر حذف بالقرب من أعلى الصفحة.
في صفحة حذف بيانات الاعتماد، انقر على حذف.
يستغرق نشر عملية حذف مفتاح واجهة برمجة التطبيقات بضع دقائق. بعد اكتمال عملية النقل، سيتم رفض أي زيارات تستخدم مفتاح واجهة برمجة التطبيقات المحذوف.
توخَّ الحذر عند تدوير مفاتيح واجهة برمجة التطبيقات
يؤدي تدوير مفتاح واجهة برمجة التطبيقات إلى إنشاء مفتاح جديد يتضمّن جميع قيود المفتاح القديم. خلال هذه الفترة الزمنية، يتم قبول كل من المفتاح القديم والجديد، ما يمنحك فرصة لنقل تطبيقاتك لاستخدام المفتاح الجديد.
قبل تدوير مفتاح واجهة برمجة التطبيقات:
حاوِل أولاً تقييد مفاتيح واجهة برمجة التطبيقات على النحو الموضّح في مقالة تقييد مفاتيح واجهة برمجة التطبيقات.
إذا لم يكن من الممكن تقييد مفتاح واجهة برمجة التطبيقات بسبب أنواع قيود التطبيقات المتعارضة، يمكنك نقل البيانات إلى مفاتيح جديدة متعددة (خاضعة لقيود) كما هو موضح في نقل البيانات إلى مفاتيح واجهة برمجة تطبيقات متعددة. يتيح لك نقل البيانات التحكّم في عملية النقل والجدول الزمني لطرح مفاتيح واجهة برمجة التطبيقات الجديدة.
إذا لم تكن الاقتراحات السابقة ممكنة، وكان عليك تدوير مفتاح واجهة برمجة التطبيقات لمنع الاستخدام غير المصرّح به، اتّبِع الخطوات التالية:
افتح صفحة بيانات اعتماد منصة خرائط Google في Google Cloud Console.
افتح مفتاح واجهة برمجة التطبيقات الذي تريد تدويره.
في أعلى الصفحة، انقر على تدوير المفتاح.
يمكنك اختياريًا تغيير اسم مفتاح واجهة برمجة التطبيقات.
انقر على إنشاء.
يُرجى تعديل تطبيقاتك لاستخدام المفتاح الجديد.
بعد تعديل تطبيقاتك لاستخدام المفتاح الجديد، احذف المفتاح القديم بالنقر على الزر حذف المفتاح السابق ضمن قسم "المفتاح السابق" في صفحة مفتاح واجهة برمجة التطبيقات الجديد.
نقل البيانات إلى مفاتيح واجهة برمجة تطبيقات متعددة
للانتقال من استخدام مفتاح واجهة برمجة تطبيقات واحد لتطبيقات متعددة إلى مفتاح واجهة برمجة تطبيقات فريد واحد لكل تطبيق، اتّبِع الخطوات التالية:
تحديد التطبيقات التي تحتاج إلى مفاتيح جديدة:
- تُعدّ تطبيقات الويب الأسهل من حيث التحديث، لأنّك تتحكّم في جميع الرموز البرمجية. خطِّط لتعديل جميع مفاتيح تطبيقاتك المستندة إلى الويب.
- أما في التطبيقات المتوافقة مع الأجهزة الجوّالة، فالأمر أصعب بكثير، لأنّ على عملائك تحديث تطبيقاتهم قبل أن يتمكّنوا من استخدام المفاتيح الجديدة.
إنشاء المفاتيح الجديدة وتقييدها: أضِف قيودًا على التطبيق وقيودًا واحدة على الأقل على واجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على أفضل الممارسات المقترَحة.
إضافة المفاتيح الجديدة إلى تطبيقاتك: بالنسبة إلى تطبيقات الأجهزة الجوّالة، قد تستغرق هذه العملية عدة أشهر إلى أن يثبّت جميع المستخدمين آخر إصدار من التطبيق يتضمّن مفتاح واجهة برمجة التطبيقات الجديد.
تقسيم الاستخدام من جهة العميل ومن جهة الخادم إلى مشاريع منفصلة
إذا كنت بحاجة إلى طلب خدمات "منصة خرائط Google" من تطبيقات تعمل على الخادم ومن تطبيقات تعمل مباشرةً على أجهزة المستخدمين النهائيين، تنصحك Google بتقسيم استخدامك بين مشروعَين منفصلَين.
تتيح لك هذه الطريقة تطبيق حدود الحصة المناسبة لكل دقيقة ولكل مستخدم على معظم خدمات "منصة خرائط Google" في مشروعك من جهة العميل، ما يساعد في ضمان حصول جميع المستخدمين النهائيين على حصتهم العادلة من الحصة الإجمالية لمشروعك بدون التأثير على بعضهم البعض.
ومع ذلك، بما أنّ قيود الحصة المحددة لكل مستخدم تؤثّر في التطبيقات من جهة العميل ومن جهة الخادم، إذا كنت تحتاج أيضًا إلى معدل نقل بيانات عالٍ لمهامك من جهة الخادم، يمكنك إعداد مشروع منفصل لحالة الاستخدام هذه، مع ضبط حد أعلى للحصة المحددة لكل مستخدم أو عدم ضبط أي حد على الإطلاق.
إيقاف الخدمات غير المستخدَمة
لا تترك الخدمات غير المستخدَمة مفعَّلة في مشروع، لأنّ هذه الممارسة تكون عرضة لإساءة الاستخدام، خاصةً إذا لم تفرض قيودًا على جميع مفاتيح واجهة برمجة التطبيقات العامة. كأفضل ممارسة، لا تفعِّل خدمة في مشروع إلا عندما تحتاج إليها تطبيقاتك.
تؤدي إضافة قيود واجهة برمجة التطبيقات على مفتاح إلى منع استخدامه في الخدمات التي لم يتم تفويضه لها، ولكن لا تنطبق قيود واجهة برمجة التطبيقات إلا على هذا المفتاح المحدّد. يمكنك إيقاف خدمة على مستوى المشروع لمنع الاستخدام غير المصرّح به للخدمة على أي مفتاح مرتبط بالمشروع.
استخدام حِزم تطوير البرامج (SDK) من جهة العميل
عند استخدام حِزم SDK من منصة خرائط Google المتوفّرة من جهة العميل، ستتمكّن دائمًا من تطبيق القيود المناسبة على مفتاح واجهة برمجة التطبيقات لتأمين استخدام خدمتك.
سيسمح لك استخدام حِزم SDK من جهة العميل أيضًا بتبنّي آلية أمان أكثر تقدّمًا، مثل خدمة فحص التطبيقات من Firebase على مساحات واجهة برمجة التطبيقات في "منصة خرائط Google" التي تتيحها. لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة استخدام ميزة "فحص التطبيقات" لتأمين مفتاح واجهة برمجة التطبيقات.
إذا لم تتوفّر حِزم SDK من جهة العميل لمنصتك، يُرجى الاطّلاع على تأمين طلبات خدمة الويب من جهة العميل.
للاطّلاع على مدى توفّر حِزم تطوير البرامج (SDK) من منصة خرائط Google من جهة العميل لمختلف المنصات، يُرجى الاطّلاع على القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات.
حماية استخدام Static Web API
تشبه واجهات برمجة التطبيقات الثابتة على الويب، مثل Maps Static API وStreet View Static API، طلبات واجهات برمجة التطبيقات لخدمات الويب.
يمكنك طلب كليهما باستخدام واجهة HTTPS REST API، وعادةً ما تنشئ عنوان URL لطلب البيانات من واجهة برمجة التطبيقات على الخادم. ومع ذلك، بدلاً من عرض استجابة JSON، تنشئ واجهات Static Web API صورة يمكنك تضمينها في رمز HTML الذي تم إنشاؤه. والأهم من ذلك، أنّ العميل من المستخدمين النهائيين هو الذي يستدعي خدمة "منصة خرائط Google"، وليس الخادم.
استخدام توقيع رقمي
كأفضل الممارسات، استخدِم التواقيع الرقمية دائمًا بالإضافة إلى مفتاح واجهة برمجة التطبيقات. راجِع أيضًا عدد الطلبات غير الموقَّعة التي تريد السماح بها يوميًا وعدِّل حصص الطلبات غير الموقَّعة وفقًا لذلك.
لمزيد من التفاصيل حول التوقيعات الرقمية، يُرجى الاطّلاع على دليل التوقيع الرقمي.
حماية سر التوقيع
لحماية واجهات برمجة التطبيقات الثابتة على الويب، لا تضمِّن أسرار توقيع واجهة برمجة التطبيقات مباشرةً في الرمز البرمجي أو في شجرة المصدر، ولا تعرضها في تطبيقات من جهة العميل. اتّبِع أفضل الممارسات التالية لحماية مفاتيح التوقيع السرية:
أنشِئ عناوين URL لطلبات Maps Static API وStreet View Static API الموقَّعة من جهة الخادم عند عرض صفحة ويب أو استجابةً لطلب من تطبيقك المتوافق مع الأجهزة الجوّالة.
بالنسبة إلى محتوى الويب الثابت، يمكنك استخدام التطبيق المصغّر توقيع عنوان URL الآن في صفحة بيانات الاعتماد على Cloud Console منصة خرائط Google.
بالنسبة إلى محتوى الويب الديناميكي، يمكنك الاطّلاع على عينات الرموز المتاحة لتوقيع طلبات عناوين URL.
تخزين أسرار التوقيع خارج الرمز المصدر للتطبيق وشجرة المصدر إذا وضعت أسرار التوقيع أو أي معلومات خاصة أخرى في متغيرات البيئة أو تضمّنت ملفات مخزَّنة بشكل منفصل ثم شاركت الرمز، لن يتم تضمين أسرار التوقيع في الملفات المشترَكة. إذا كنت تخزّن أسرار التوقيع أو أي معلومات خاصة أخرى في ملفات، احرص على تخزين الملفات خارج شجرة المصدر لتطبيقك من أجل إبقاء أسرار التوقيع خارج نظام التحكّم في رمز المصدر. هذا الإجراء الاحترازي مهم بشكل خاص إذا كنت تستخدم نظامًا عامًا لإدارة الرموز المصدر، مثل GitHub.
حماية مفاتيح واجهة برمجة التطبيقات الخاصة بخدمات الويب
للاستخدام الآمن لواجهات برمجة التطبيقات والخدمات في "منصة خرائط Google" من التطبيقات من جهة العميل، يُرجى الاطّلاع على استخدام حِزم تطوير البرامج (SDK) من جهة العميل وتأمين طلبات خدمات الويب من جهة العميل.
تخزين مفاتيح واجهة برمجة التطبيقات خارج الرمز المصدر أو شجرة المصدر لتطبيقك: إذا وضعت مفاتيح واجهة برمجة التطبيقات أو أي معلومات أخرى في متغيّرات البيئة أو تضمّنت ملفات مخزّنة بشكل منفصل ثم شاركت الرمز البرمجي، لن يتم تضمين مفاتيح واجهة برمجة التطبيقات في الملفات المشترَكة. ويكون ذلك مهمًا بشكل خاص إذا كنت تستخدم نظامًا عامًا لإدارة الرموز المصدرية، مثل GitHub.
للمساعدة في حماية مفتاح واجهة برمجة التطبيقات لخدمة الويب من الاستخدام غير المقصود، تنصح Google بتطبيق قيود على واجهة برمجة التطبيقات على أي مفتاح مستخدَم في Maps Platform. بالإضافة إلى ذلك، فإنّ تطبيق قيود عنوان IP على مفتاح خدمة الويب سيحميه من الاستخدام غير المصرَّح به من عناوين IP المصدر الأخرى، حتى في حال تسرُّب المفتاح عن طريق الخطأ.
استخدام OAuth للتطبيقات التي تعمل على جهة الخادم
OAuth 2.0 هو معيار مفتوح لتفويض الوصول.
في حين أنّ بروتوكول OAuth 2.0 يتيح حالات استخدام يمنح فيها المستخدم النهائي تطبيقًا إذن الوصول إلى بياناته الشخصية نيابةً عنه، فإنّ حالة الاستخدام المقصودة لبروتوكول OAuth 2.0 مع "منصة خرائط Google" هي أن يستخدم المطوّر رموزًا مميزة مؤقتة للوصول من أجل منح تطبيق الإذن باستدعاء واجهة برمجة تطبيقات نيابةً عن حساب الخدمة لمشروع Google Cloud الخاص به، مع منح حساب الخدمة الأذونات اللازمة.
بما أنّ حساب الخدمة قد يتضمّن أذونات واسعة النطاق، يُنصح باستخدام OAuth 2.0 لتفويض طلبات من الخادم إلى الخادم بين تطبيقات جهة الخادم الموثوقة الخاصة بالمطوّر وخوادم "منصة خرائط Google".
بالنسبة إلى التطبيقات من جهة العميل التي تعمل على أجهزة المستخدمين النهائيين، يُنصح باستخدام طرق مصادقة أخرى، مثل مفاتيح واجهة برمجة التطبيقات.
إذا أردت استخدام OAuth 2.0 للسماح بنقل البيانات من خادم إلى خادم، ابحث عن موضوع OAuth في مستندات واجهة برمجة التطبيقات.
على سبيل المثال، إليك موضوع OAuth الخاص بواجهة برمجة التطبيقات Address Validation API.
إجراء مكالمات آمنة لخدمات الويب من جهة العميل
إذا لم تكن حِزم SDK من جهة العميل متاحة، اطّلِع على الاقتراحات أدناه.
استخدام خادم وكيل
يوفّر استخدام خادم وكيل آمن مصدرًا موثوقًا للتفاعل مع نقطة نهاية خدمة الويب على "منصة خرائط Google" من تطبيق من جهة العميل بدون عرض مفتاح واجهة برمجة التطبيقات أو سر التوقيع أو حساب خدمة Google Cloud للمستخدمين غير المصرّح لهم.
النقاط الرئيسية:
إنشاء طلبات "منصة خرائط Google" على خادم الوكيل لا تسمح للعملاء بإعادة توجيه طلبات عشوائية إلى واجهة برمجة التطبيقات باستخدام الخادم الوكيل.
أجرِ معالجة لاحقة لردود "منصة خرائط Google" على خادم الوكيل. فلترة البيانات التي لا يحتاج إليها العميل
لمزيد من المعلومات حول استخدام خادم وكيل، يُرجى الاطّلاع على Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries.
إجراء مكالمات آمنة ومباشرة لخدمات الويب على الأجهزة الجوّالة
إذا لم تتمكّن من إعداد خادم وكيل آمن لتطبيقك من جهة العميل، يمكنك تأمين تطبيقك باتّباع الخطوات التالية:
استخدام عناوين HTTP:
Android: استخدِم عنوانَي HTTP
X-Android-PackageوX-Android-Cert.iOS: استخدِم عنوان HTTP يتضمّن العنصر
X-Ios-Bundle-Identifier.
أضِف قيود التطبيق المقابلة إلى مفتاح Android أو iOS.
قبل أن تفكّر في إصدار طلبات مباشرة من تطبيقك المتوافق مع الأجهزة الجوّالة إلى خدمة ويب REST API في "منصة خرائط Google"، تأكَّد من رفض الطلبات التي تتضمّن معرّفات تطبيقات Android أو iOS غير صحيحة.
إذا لم تكن قيود تطبيقات Android وiOS متاحة على نقطة النهاية التي تم اختبارها، تنصحك Google بشدة باستخدام خادم وكيل آمن بين أجهزة الجوّال ونقطة نهاية خدمة الويب في "منصة خرائط Google".
نصائح لتطبيقات Android:
قبل دمج تطبيق Android مع خدمات منصة خرائط Google، تأكَّد من أنّ تنسيق معرّف تطبيقك (المعروف أيضًا باسم الحزمة) صحيح. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة ضبط وحدة التطبيق في مستندات Android.
لتمرير
X-Android-Packageمباشرةً من تطبيقك، ابحث عنه آليًا باستخدامContext.getPackageName().لتمرير
X-Android-Certمباشرةً من تطبيقاتك، احسب الملف المرجعي SHA-1 المطلوب لشهادات توقيع تطبيقك، والتي يمكن الوصول إليها من خلالPackageInfo.signingInfo.إذا كنت تفوّض تطبيق Android باستخدام "وحدة تحكّم Google Cloud"، يُرجى العِلم أنّ واجهة المستخدم تتوقّع أن يكون الملف المرجعي لمعيار SHA-1 سلسلة مفصولة بنقطتين رأسيتين، مثل
00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33. ومع ذلك، تتوقّعgcloudالأداة وواجهة برمجة التطبيقات الخاصة بمفاتيح واجهة برمجة التطبيقات السلسلة السداسية العشرية بدون محددات.
نصائح لتطبيقات iOS:
قبل دمج تطبيق iOS مع خدمات منصة خرائط Google، تأكَّد من أنّ تنسيق معرّف الحزمة صحيح.
يجب عادةً تمرير معرّف حزمة الحزمة الرئيسية في عنوان
X-Ios-Bundle-Identifierعند منح الإذن لتطبيق iOS.
لمزيد من المعلومات، يُرجى الرجوع إلى المقالتَين إدارة مفاتيح واجهة برمجة التطبيقات و استخدام مفاتيح واجهة برمجة التطبيقات للوصول إلى واجهات برمجة التطبيقات.
استضافة تطبيقاتك المستندة إلى المتصفّح على خادم
تتيح لك أُطر العمل، مثل Apache Cordova، إنشاء تطبيقات مختلطة متعددة الأنظمة الأساسية تعمل داخل WebView. ومع ذلك، لا نضمن عمل القيود على المواقع الإلكترونية لمفتاح واجهة برمجة التطبيقات بشكل صحيح، إلا إذا تم تحميل تطبيق الويب باستخدام HTTP أو HTTPS من موقع إلكتروني تتحكّم فيه وسمحت به.
في كثير من الحالات، لن تعمل المصادقة المستندة إلى المُحيل إذا تم تحميل الموارد المجمّعة محليًا من داخل تطبيق مختلط أو تم الوصول إليها باستخدام عنوان URL لملف محلي، لأنّ محرّك المتصفّح الذي يشغّل WebView سيحذف عنوان Referer. لتجنُّب ذلك، استضِف تطبيقات الويب من جهة الخادم، وليس من جهة العميل.
بدلاً من ذلك، بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، ننصحك باستخدام حِزم تطوير البرامج (SDK) المتاحة لنظامَي التشغيل Android وiOS من "منصة خرائط Google"، بدلاً من استخدام حزمة تطوير برامج (SDK) مستندة إلى الويب.
استخدام فحص التطبيقات لتأمين مفتاح واجهة برمجة التطبيقات
تتيح لك بعض حِزم تطوير البرامج وواجهات برمجة التطبيقات في "خرائط Google" إمكانية الدمج مع خدمة التحقّق من التطبيق في Firebase. توفّر خدمة فحص التطبيقات الحماية للمكالمات الواردة من تطبيقك إلى "منصة خرائط Google" من خلال حظر الزيارات الواردة من مصادر أخرى غير التطبيقات المشروعة. ويتم ذلك من خلال البحث عن رمز مميّز من موفّر شهادات تصديق. يساعد دمج تطبيقاتك مع ميزة "التحقّق من التطبيق" في الحماية من الطلبات الضارة، وبالتالي لن يتم تحصيل رسوم منك مقابل طلبات البيانات غير المصرّح بها من واجهة برمجة التطبيقات.
تعليمات دمج فحص التطبيقات:
- حزمة تطوير البرامج Places SDK لنظام التشغيل iOS
- Places SDK for Android
- Maps JavaScript API
- فئة المكان، Maps JavaScript API
التعامل مع الاستخدام غير المصرّح به لمفتاح واجهة برمجة التطبيقات
إذا رصدت استخدامًا غير مصرّح به لمفتاح واجهة برمجة التطبيقات، اتّبِع الخطوات التالية لحلّ المشكلة:
تقييد مفاتيحك: إذا كنت قد استخدمت المفتاح نفسه في عدة تطبيقات، عليك نقل البيانات إلى عدة مفاتيح لواجهة برمجة التطبيقات واستخدام مفاتيح منفصلة لكل تطبيق. لمزيد من التفاصيل، يُرجى الاطّلاع على:
إذا كنت تستخدم Places SDK أو Maps JavaScript API، يمكنك أيضًا استخدام فحص التطبيقات لتأمين مفتاح واجهة برمجة التطبيقات.
لا تستبدِل المفاتيح أو تدوِّرها إلا في الحالات التالية:
إذا رصدت استخدامًا غير مصرَّح به للمفاتيح التي لا يمكن حظرها أو التي تم حظرها، ولا تنطبق ميزة "فحص التطبيقات".
إذا كنت تريد اتّخاذ إجراءات أسرع لتأمين مفتاح واجهة برمجة التطبيقات وإيقاف إساءة الاستخدام، حتى لو كان ذلك سيؤثّر في الزيارات الصالحة من تطبيقك.
قبل المتابعة، يُرجى قراءة المقالة توخَّ الحذر عند تدوير مفاتيح واجهة برمجة التطبيقات.
إذا استمرّت المشاكل أو كنت بحاجة إلى المساعدة، يُرجى التواصل مع فريق الدعم.
القيود المقترَحة على التطبيقات وواجهات برمجة التطبيقات
تقدّم الأقسام التالية اقتراحات بشأن القيود المناسبة على التطبيقات وواجهات برمجة التطبيقات لكل واجهة برمجة تطبيقات أو حزمة تطوير برامج (SDK) أو خدمة من "منصة خرائط Google".
القيود المقترَحة على واجهة برمجة التطبيقات
تنطبق الإرشادات التالية بشأن قيود واجهة برمجة التطبيقات على جميع خدمات "منصة خرائط Google":
يجب حصر مفتاح واجهة برمجة التطبيقات على واجهات برمجة التطبيقات التي تستخدمه من أجلها فقط، مع مراعاة الاستثناءات التالية:
إذا كان تطبيقك يستخدم حزمة تطوير البرامج Places SDK لنظام التشغيل Android أو حزمة تطوير البرامج Places SDK لنظام التشغيل iOS، عليك منح الإذن لاستخدام Places API (الجديدة) أو Places API، وذلك حسب إصدارات حزمة تطوير البرامج التي تستخدمها. 1
إذا كان تطبيقك يستخدم Maps JavaScript API، عليك دائمًا منحه الإذن على مفتاحك.
إذا كنت تستخدم أيضًا أيًا من خدمات Maps JavaScript API التالية، عليك أيضًا تفويض واجهات برمجة التطبيقات المقابلة لها:
الخدمة قيود واجهة برمجة التطبيقات خدمة الاتجاهات (الإصدار القديم) Directions API (الإصدار القديم) خدمة Distance Matrix (الإصدار القديم) Distance Matrix API (الإصدار القديم) Elevation Service Elevation API خدمة الترميز الجغرافي Geocoding API فئة المكان، وأداة الإكمال التلقائي للأماكن (الجديدة) وواجهة برمجة التطبيقات لبيانات الإكمال التلقائي للأماكن Places API (جديدة)2 Places Library, Places Service & Place Autocomplete Widget Places API2
1 لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات حزمة تطوير البرامج بالاستناد إلى الموقع الجغرافي لنظام التشغيل Android وحزمة تطوير البرامج بالاستناد إلى الموقع الجغرافي لنظام التشغيل iOS.
2 إذا لم تكن متأكدًا مما إذا كنت بحاجة إلى تفويض Places API (الجديدة) أو Places API (القديمة)، يُرجى الاطّلاع على مستندات Maps JavaScript API.
إليك بعض الأمثلة:
أنت تستخدم حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لأجهزة Android وPlaces SDK for Android، لذا عليك تضمين حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لأجهزة Android وPlaces API (New) كقيود على واجهة برمجة التطبيقات.
يستخدم موقعك الإلكتروني خدمة الارتفاع في Maps JavaScript API وMaps Static API، لذا عليك إضافة قيود لواجهات برمجة التطبيقات التالية:
- Maps JavaScript API
- Elevation API
- Maps Static API
القيود المقترَحة على التطبيقات
المواقع الإلكترونية
بالنسبة إلى المواقع الإلكترونية التي تستخدم خدمات Maps JavaScript API أو Maps Static API أو Street View Static API أو تستدعي خدمات Google Maps Platform الحديثة مباشرةً عبر HTTPS REST API أو gRPC، استخدِم قيود التطبيق المواقع الإلكترونية:
1 بالنسبة إلى تطبيقات الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android وحزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS الأصلية.
2 بالنسبة إلى تطبيقات الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج (SDK) للأماكن في Android وحزمة تطوير البرامج (SDK) للأماكن في iOS.
3 يُرجى الاطّلاع أيضًا على مقالة حماية استخدام Static Web API.
المواقع الإلكترونية التي تستخدم Maps Embed API
على الرغم من أنّ استخدام Maps Embed API لا يتطلّب أي رسوم، عليك مع ذلك حصر استخدام أي مفتاح لواجهة برمجة التطبيقات لمنع إساءة الاستخدام في الخدمات الأخرى.
أفضل الممارسات: أنشئ مفتاحًا منفصلاً لواجهة برمجة التطبيقات Maps Embed API، واجعله مخصّصًا فقط لهذه الواجهة. يؤدي هذا القيد إلى تأمين المفتاح بشكل كافٍ، ما يمنع استخدامه بدون إذن على أي خدمة أخرى من Google. للتحكّم بشكل كامل في الأماكن التي يمكن استخدام مفتاح واجهة برمجة التطبيقات Maps Embed منها، تنصح Google أيضًا بتطبيق قيود التطبيقات على المواقع الإلكترونية.
إذا لم تتمكّن من فصل استخدامك لواجهة برمجة التطبيقات Maps Embed API إلى مفتاح واجهة برمجة تطبيقات منفصل، يمكنك تأمين مفتاحك الحالي باستخدام قيود التطبيق المواقع الإلكترونية.
التطبيقات والخوادم التي تستخدم خدمات الويب
بالنسبة إلى الخوادم والتطبيقات من جهة العميل من الشبكات الداخلية الموثوقة للشركات التي تستخدم خدمات الويب مع مفاتيح واجهة برمجة التطبيقات، استخدِم قيود تطبيق IP addresses.
يُستخدم للتطبيقات والخوادم التي تستخدم واجهات برمجة التطبيقات التالية:
4 بالنسبة إلى تطبيقات الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج للتنقّل.
5 لاستخدام الأجهزة الجوّالة بأمان، استخدِم خادم وكيل آمنًا.
6 بالنسبة إلى التطبيقات من جهة العميل، ننصحك باستخدام خدمة رصد الموقع الجغرافي الأصلية التي توفّرها المنصة، مثل تحديد الموقع الجغرافي من W3C لمتصفّحات الويب، أو LocationManager أو موفِّر الموقع المدمج لنظام Android، أو إطار عمل Core Location من Apple لنظام التشغيل iOS.
7 بالنسبة إلى التطبيقات المتوافقة مع الأجهزة الجوّالة، ننصحك باستخدام حزمة تطوير البرامج (SDK) للأماكن على Android وحزمة تطوير البرامج (SDK) للأماكن على iOS.
8 للاستخدام الآمن من جهة العميل، استخدِم خادم وكيل آمنًا.
تطبيقات Android
بالنسبة إلى التطبيقات على Android، استخدِم قيد التطبيق Android apps. الاستخدام للتطبيقات التي تستخدم حِزم SDK التالية:
- حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google للتطبيقات المتوافقة مع Android
- Places SDK for Android
- حزمة تطوير البرامج للتنقّل على أجهزة Android
بالإضافة إلى ذلك، يمكنك منع إدخال مفاتيح واجهة برمجة التطبيقات عن طريق الخطأ في نظام التحكم في الإصدارات من خلال استخدام Secrets Gradle Plugin لإدخال الأسرار من ملف محلي بدلاً من تخزينها في ملف البيان AndroidManifest.xml.
تطبيقات iOS
بالنسبة إلى التطبيقات على أجهزة iOS، استخدِم قيود تطبيق iOS apps. الاستخدام للتطبيقات والخوادم التي تستخدم حِزم SDK هذه:
- حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS
- حزمة تطوير البرامج Places SDK لنظام التشغيل iOS
- حزمة تطوير البرامج للتنقّل على أجهزة iOS
محتوى إضافي للقراءة
- إدارة مفاتيح واجهة برمجة التطبيقات
- استخدام مفاتيح واجهة برمجة التطبيقات للوصول إلى واجهات برمجة التطبيقات
- تحسين استخدام "منصة خرائط Google" من خلال الحصص (فيديو)
- كيفية إنشاء مفاتيح واجهة برمجة التطبيقات وتقييدها في "منصة خرائط Google" (فيديو)
- تقييد مفاتيح واجهة برمجة التطبيقات
- تأمين مفاتيح واجهة برمجة التطبيقات عند استخدام Static Maps API وStreet View API
- 15 من أفضل الممارسات على "منصة خرائط Google"