نطاقات الأذونات

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

وخلال هذه العملية، تخبر واجهة المستخدم المستخدم بما يريد النص البرمجي الحصول على إذن لتنفيذه. على سبيل المثال، قد يحتاج النص البرمجي إلى الحصول على إذن لقراءة رسائل البريد الإلكتروني للمستخدم أو إنشاء أحداث في التقويم. ويحدد مشروع النص البرمجي هذه الأذونات الفردية على أنها نطاقات OAuth.

بالنسبة إلى معظم النصوص البرمجية، يكتشف "برمجة التطبيقات" تلقائيًا النطاقات اللازمة لك؛ ويمكنك عرض النطاقات التي يستخدمها النص البرمجي في أي وقت. يمكنك أيضًا تعيين النطاقات بوضوح في ملف البيان باستخدام سلاسل عناوين URL. يلزم أحيانًا تعيين النطاقات بوضوح لتطبيقات معينة مثل الإضافات، حيث يجب أن تستخدم التطبيقات المنشورة دائمًا أضيق نطاق ممكن.

أثناء تدفق التفويض، يقدم برمجة التطبيقات أوصافًا يمكن للمستخدمين قراءتها للنطاقات المطلوبة للمستخدم. على سبيل المثال، إذا كان النص البرمجي يحتاج إلى الوصول للقراءة فقط إلى جداول البيانات، قد يتضمن البيان النطاق https://www.googleapis.com/auth/spreadsheets.readonly. أثناء تدفق التفويض، يطلب نص برمجي بهذا النطاق من المستخدم السماح لهذا التطبيق بـ "عرض جداول بيانات Google".

وتتضمن بعض النطاقات نطاقات أخرى. على سبيل المثال، عندما يكون النطاق https://www.googleapis.com/auth/spreadsheets مصرّحًا له، يسمح بالوصول إلى جداول البيانات للقراءة والكتابة.

عرض النطاقات

يمكنك الاطّلاع على النطاقات التي يتطلّبها مشروع النص البرمجي حاليًا من خلال تنفيذ ما يلي:

  1. افتح مشروع النص البرمجي.
  2. على يمين الصفحة، انقر على نظرة عامة .
  3. يمكنك عرض النطاقات ضمن Project OAuth Domainss (نطاقات OAuth للمشروع).

تعيين النطاقات الصريحة

تحدد برمجة التطبيقات تلقائيًا النطاقات التي يحتاجها النص البرمجي عن طريق فحص رمزها لاستدعاء الدوال التي تتطلبها. بالنسبة إلى معظم النصوص البرمجية، يعد هذا كافيًا ويوفر لك الوقت، ولكن بالنسبة إلى الإضافات وتطبيقات الويب المنشورة، يجب أن تتمتع بمزيد من التحكم المباشر في النطاقات.

تُحدِّد "برمجة التطبيقات" أحيانًا المشاريع نطاقات متساهلة للغاية تلقائيًا. هذا قد يعني أن النص البرمجي يُطالب المستخدم بأكثر مما يحتاج إليه، وهو أمر سيء. بالنسبة إلى النصوص البرمجية المنشورة، يجب استبدال النطاقات الواسعة بمجموعة محدودة أكثر من التي تغطي احتياجات النص البرمجي ولا تستبدلها.

يمكنك تحديد النطاقات التي يستخدمها مشروع النص البرمجي بشكل صريح عن طريق تعديل ملف manifest الخاص به. حقل البيان oauthScopes عبارة عن مصفوفة تضم جميع النطاقات التي يستخدمها المشروع. لتعيين نطاقات مشروعك، نفذ ما يلي:

  1. افتح مشروع النص البرمجي.
  2. على يمين الصفحة، انقر على إعدادات المشروع .
  3. حدد مربع الاختيار عرض ملف البيان "appsscript.json" في المحرر.
  4. على يمين الصفحة، انقر على رمز أداة التحرير .
  5. على يمين الصفحة، انقر على ملف appsscript.json.
  6. حدّد موقع حقل المستوى الأعلى المسمى oauthScopes. وإذا لم تكن متوفّرة، يمكنك إضافتها.
  7. يحدد الحقل oauthScopes صفيفًا من السلاسل. لضبط النطاقات التي يستخدمها مشروعك، عليك استبدال محتوى هذه المصفوفة بالنطاقات التي تريد استخدامها. على سبيل المثال:
          {
            ...
            "oauthScopes": [
              "https://www.googleapis.com/auth/spreadsheets.readonly",
              "https://www.googleapis.com/auth/userinfo.email"
            ],
           ...
          }
    
  8. في أعلى الصفحة، انقر على "حفظ" .

التحقق من OAuth

بعض نطاقات OAuth حساسة لأنها تسمح بالوصول إلى بيانات مستخدم Google. إذا كان مشروع النص البرمجي يستخدم نطاقات تسمح بالوصول إلى بيانات المستخدم، يجب أن يخضع المشروع لإثبات ملكية عميل OAuth قبل أن تتمكّن من نشره للجميع كتطبيق ويب أو إضافة. لمزيد من المعلومات، راجع الأدلة التالية:

النطاقات المحظورة

بالإضافة إلى النطاقات الحساسة، يتم تصنيف نطاقات معيّنة على أنها مقيَّدة وتخضع لقواعد إضافية تساعد على حماية بيانات المستخدمين. إذا كنت تنوي نشر تطبيق ويب أو إضافة تستخدم نطاقًا مقيّدًا واحدًا أو أكثر، يجب أن يلتزم التطبيق بجميع القيود المحدّدة قبل نشره.

يُرجى مراجعة القائمة الكاملة للنطاقات المحظورة قبل محاولة النشر. إذا كان تطبيقك يستخدم أيًا منها، يجب الالتزام بالمتطلبات الإضافية لنطاقات واجهة برمجة تطبيقات معينة قبل النشر.