على المستخدمين تفويض مشاريع النصوص البرمجية التي تصل إلى بياناتهم أو تتصرّف بالنيابة عنهم. عندما يشغّل مستخدم نصًا برمجيًا يتطلّب الحصول على إذن للمرة الأولى، تعرض واجهة المستخدم طلبًا لبدء عملية الحصول على الإذن.
خلال هذه العملية، يُعلم واجهة المستخدم المستخدم بالإجراءات التي يطلب النص البرمجي الحصول على إذن للقيام بها. على سبيل المثال، قد يطلب النص البرمجي إذنًا لقراءة رسائل البريد الإلكتروني الخاصة بالمستخدم أو إنشاء أحداث في تقويمه. يحدِّد مشروع النصوص البرمجية هذه الأذونات الفردية على أنّها نطاقات OAuth.
بالنسبة إلى معظم النصوص البرمجية، ترصد أداة "برمجة التطبيقات" تلقائيًا النطاقات التي تحتاج إليها، ويمكنك عرض النطاقات التي تستخدمها النصوص البرمجية في أي وقت. يمكنك أيضًا ضبط النطاقات صراحةً في manifest باستخدام سلاسل عناوين URL. يكون تحديد النطاقات صراحةً مطلوبًا أحيانًا لبعض التطبيقات، مثل الإضافات، لأنّ التطبيقات المنشورة يجب أن تستخدم دائمًا النطاقات الأضيق الممكنة.
أثناء عملية التفويض، تعرِض Apps Script للمستخدم وصفًا سهل الفهم
للنطاقات المطلوبة. على سبيل المثال، إذا كان نصك البرمجي
يحتاج إلى إذن بالقراءة فقط في جداول البيانات، قد يحتوي البيان على النطاق
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 في Apps Script
- التطبيقات غير التي تم التحقّق منها
- الأسئلة الشائعة حول عملية التحقّق من OAuth
- خدمة Google APIs: سياسة بيانات المستخدمين
النطاقات المحظورة
بالإضافة إلى النطاقات الحسّاسة، يتم تصنيف نطاقات معيّنة على أنّها محدودة وخضعة لقواعد إضافية تساعد في حماية بيانات المستخدمين. إذا كنت تنوي نشر تطبيق ويب أو إضافة يستخدمان نطاقًا واحدًا أو أكثر محظورًا، يجب أن يمتثل التطبيق لجميع القيود المحدّدة قبل نشره.
راجِع القائمة الكاملة لنطاقات الوصول المحظورة قبل محاولة النشر. وإذا كان تطبيقك يستخدم أيًا منها، يجب الامتثال للمتطلبات الإضافية لنطاقات محددة لواجهات برمجة التطبيقات قبل نشر التطبيق.