على المستخدمين تفويض مشاريع النصوص البرمجية التي تصل إلى بياناتهم أو تتصرّف بالنيابة عنهم. عندما يشغّل المستخدم نصًا برمجيًا يتطلب إذنًا للمرة الأولى، تعرض واجهة المستخدم طلبًا لبدء تدفق التفويض.
خلال هذه العملية، يُعلم واجهة المستخدم المستخدم بالإجراءات التي يطلب النص البرمجي الحصول على إذن للقيام بها. على سبيل المثال، قد يطلب النص البرمجي إذنًا لقراءة رسائل البريد الإلكتروني الخاصة بالمستخدم أو إنشاء أحداث في تقويمه. يحدِّد مشروع النصوص البرمجية هذه الأذونات الفردية على أنّها نطاقات OAuth.
بالنسبة إلى معظم النصوص البرمجية، ترصد أداة "برمجة التطبيقات" تلقائيًا النطاقات التي تحتاج إليها، ويمكنك عرض النطاقات التي تستخدمها النصوص البرمجية في أي وقت. يمكنك أيضًا ضبط النطاقات صراحةً في manifest باستخدام سلاسل عناوين URL. يكون تحديد النطاقات صراحةً مطلوبًا أحيانًا لبعض التطبيقات، مثل الإضافات، لأنّ التطبيقات المنشورة يجب أن تستخدم دائمًا النطاقات الأضيق الممكنة.
أثناء تدفق التفويض، يقدِّم "برمجة التطبيقات" للمستخدمين أوصافًا سهلة القراءة للنطاقات المطلوبة. على سبيل المثال، إذا كان نصك البرمجي
يحتاج إلى إذن بالقراءة فقط في جداول البيانات، قد يحتوي البيان على النطاق
https://www.googleapis.com/auth/spreadsheets.readonly
. أثناء عملية
التفويض، يطلب نص برمجي يتضمّن هذا النطاق من المستخدم السماح لتطبيق
هذا "بعرض جداول بيانات Google".
وتضم بعض النطاقات الأخرى. على سبيل المثال، عند التصريح بأنّ النطاق https://www.googleapis.com/auth/spreadsheets
يسمح بالوصول إلى جداول البيانات للقراءة والكتابة في هذه الحالة.
نطاقات العرض
يمكنك الاطّلاع على النطاقات التي يتطلبها مشروع النصوص البرمجية حاليًا من خلال تنفيذ الخطوات التالية:
- افتح مشروع النص البرمجي.
- على يمين الصفحة، انقر على نظرة عامة .
- اطّلِع على النطاقات ضمن نطاقات OAuth للمشروع.
إعداد نطاقات صريحة
تحدِّد "برمجة تطبيقات Google" تلقائيًا النطاقات التي يحتاجها النص البرمجي من خلال فحص رمزه بحثًا عن استدعاءات الدوال التي تتطلب هذه النطاقات. بالنسبة إلى معظم النصوص البرمجية، يكون هذا الإجراء كافيًا ويوفّر عليك الوقت، ولكن بالنسبة إلى الإضافات المنشورة وتطبيقات الويب وتطبيقات Google Chat وطلبات Google Chat API، عليك ممارسة مزيد من التحكّم المباشر في النطاقات.
تمنح "برمجة تطبيقات Google" أحيانًا نطاقات متسامحة جدًا للمشاريع تلقائيًا. قد يعني ذلك أنّ النص البرمجي يطلب من المستخدم تقديم معلومات أكثر من التي يحتاجها، ما يشكّل عادةً سيئة. بالنسبة إلى النصوص البرمجية المنشورة، يجب استبدال النطاقات الواسعة بمجموعة محدودة أكثر تتناول احتياجات النص البرمجي وليس أكثر.
يمكنك تحديد النطاقات التي يستخدمها مشروع النصوص البرمجية صراحةً من خلال تعديلملف manifest المشروع. حقل البيان
oauthScopes
هو صفيف لجميع النطاقات التي يستخدمها المشروع. لضبط نطاقات
مشروعك، اتّبِع الخطوات التالية:
- افتح مشروع النص.
- على يمين الصفحة، انقر على إعدادات المشروع .
- ضَع علامة في مربّع الاختيار إظهار ملف البيان "appsscript.json" في المحرِّر.
- على يمين الصفحة، انقر على أداة التعديل .
- على يمين الصفحة، انقر على ملف
appsscript.json
. - ابحث عن الحقل ذي المستوى الأعلى الذي يحمل التصنيف
oauthScopes
. وإذا لم يكن متوفّرًا، يمكنك إضافته. - يحدّد حقل
oauthScopes
صفيفًا من السلاسل. لضبط النطاقات التي يستخدمها مشروعك، استبدِل محتوى هذا الصفيف بالنطاقات التي تريده استخدامها. على سبيل المثال:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/userinfo.email" ], ... }
- في أعلى الصفحة، انقر على رمز الحفظ .
إثبات ملكية حساب OAuth
تكون بعض نطاقات OAuth حساسة لأنّها تسمح بالوصول إلى بيانات المستخدمين في Google. إذا كان مشروع النصوص البرمجية يستخدم نطاقات تسمح بالوصول إلى بيانات المستخدمين، يجب أن يجتاز المشروع عملية إثبات ملكية عميل OAuth قبل أن تتمكّن من نشره علنًا كتطبيق ويب أو إضافة. لمزيد من المعلومات، يُرجى الاطّلاع على الأدلة التالية:
- التحقق من عميل OAuth لبرمجة التطبيقات
- التطبيقات غير التي تم التحقّق منها
- الأسئلة الشائعة حول عملية التحقّق من OAuth
- خدمة Google APIs: سياسة بيانات المستخدمين
النطاقات المحظورة
بالإضافة إلى النطاقات الحسّاسة، يتم تصنيف بعض النطاقات على أنّها محظورة وتخضع لقواعد إضافية تساعد في حماية بيانات المستخدمين. إذا كنت تنوي نشر تطبيق ويب أو إضافة يستخدمان نطاقًا واحدًا أو أكثر محظورًا، يجب أن يمتثل التطبيق لجميع القيود المحدّدة قبل نشره.
راجِع القائمة الكاملة لنطاقات الوصول المحظورة قبل محاولة النشر. وإذا كان تطبيقك يستخدم أيًا منها، يجب الامتثال للمتطلبات الإضافية لنطاقات محددة لواجهات برمجة التطبيقات قبل نشر التطبيق.