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

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

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

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

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

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

عرض النطاقات

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

  1. افتح مشروع النص البرمجي.
  2. على يمين الصفحة، انقر على نظرة عامة .
  3. اطّلِع على النطاقات ضمن نطاقات OAuth للمشروع.

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

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

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

يمكنك تحديد النطاقات التي يستخدمها مشروع النص البرمجي بشكل صريح عن طريق تعديل ملف البيان الخاص به. حقل البيان 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 قبل أن تتمكّن من نشره بشكل علني كتطبيق ويب أو إضافة. لمزيد من المعلومات، يُرجى الاطّلاع على الأدلة التالية:

نطاقات مشروطة

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

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