تطبيقات الويب

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

يمكن تحويل كل من النصوص البرمجية المستقلة والنصوص البرمجية المرتبطة Google Workspace بالتطبيقات إلى تطبيقات ويب، شرط أن تستوفي المتطلبات أدناه.

متطلبات تطبيقات الويب

يمكن نشر النص البرمجي كتطبيق ويب إذا استوفى المتطلبات التالية:

معلمات الطلب

عندما يزور أحد المستخدمين تطبيقًا أو برنامجًا ما يرسل إلى التطبيق طلب HTTP GET، تشغّل برمجة التطبيقات الوظيفة doGet(e). عندما يرسل أحد البرامج طلب HTTP POST، تشغّل "برمجة التطبيقات" doPost(e) بدلاً من ذلك. في كلتا الحالتين، تمثّل الوسيطة e معلّمة حدث يمكن أن تحتوي على معلومات عن أي معلّمات طلب. يتم عرض بنية كائن الحدث في الجدول أدناه:

الحقول
e.queryString

قيمة جزء سلسلة طلب البحث من عنوان URL، أو null إذا لم يتم تحديد سلسلة طلب بحث

name=alice&n=1&n=2
e.parameter

كائن من أزواج المفتاح/القيمة التي تتوافق مع معلمات الطلب. ويتم عرض القيمة الأولى فقط للمعلمات التي تحتوي على قيم متعددة.

{"name": "alice", "n": "1"}
e.parameters

كائن مشابه لـ e.parameter، ولكن مع صفيف من القيم لكل مفتاح

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

مسار عنوان URL بعد /exec أو /dev. على سبيل المثال، إذا كان مسار عنوان URL ينتهي بـ /exec/hello، ستكون معلومات المسار hello.

e.contextPath غير مستخدم، دائمًا ما تكون السلسلة فارغة.
e.contentLength

طول نص الطلب لطلبات POST أو -1 لطلبات GET

332
e.postData.length

مثل e.contentLength

332
e.postData.type

نوع MIME لنص POST

text/csv
e.postData.contents

نص المحتوى لنص POST

Alice,21
e.postData.name

القيمة "postData" دائمًا

postData

على سبيل المثال، يمكنك تمرير معلمات مثل username وage إلى عنوان URL كما هو موضّح أدناه:

https://script.google.com/.../exec?username=jsmith&age=21

بعد ذلك، يمكنك عرض المعلمات على النحو التالي:

function doGet(e) {
  var params = JSON.stringify(e);
  return HtmlService.createHtmlOutput(params);
}

في المثال أعلاه، تعرض doGet(e) النتيجة التالية:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

نشر نص برمجي كتطبيق ويب

لنشر نص برمجي كتطبيق ويب، اتبع الخطوات التالية:

  1. في أعلى يسار مشروع النص البرمجي، انقر على نشر > نشر جديد.
  2. بجانب "اختيار النوع"، انقر على "تفعيل أنواع النشر" > تطبيق الويب.
  3. أدخِل معلومات تطبيق الويب في الحقول ضمن "ضبط النشر".
  4. انقر على نشر.

يمكنك مشاركة عنوان URL لتطبيق الويب مع الأشخاص الذين ترغب في استخدامهم للتطبيق، بشرط أن تمنحهم حق الوصول.

اختبار نشر تطبيق ويب

لاختبار النص البرمجي كتطبيق ويب، اتّبع الخطوات التالية:

  1. في أعلى يسار مشروع النص البرمجي، انقر على نشر > اختبار عمليات النشر.
  2. بجانب "اختيار النوع"، انقر على "تفعيل أنواع النشر" > تطبيق الويب.
  3. ضمن عنوان URL لتطبيق الويب، انقر على نسخ.
  4. الصق عنوان URL في المتصفح واختبر تطبيق الويب.

    ينتهي عنوان URL هذا بـ /dev ولا يمكن الدخول إليه إلا من قِبل المستخدمين الذين لديهم حق تعديل النص البرمجي. يشغّل هذا المثال من التطبيق دائمًا أحدث رمز تم حفظه ويهدف فقط إلى الاختبار أثناء التطوير.

الأذونات

تختلف أذونات تطبيق الويب حسب الطريقة التي تختارها لتنفيذ التطبيق:

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

تضمين تطبيق الويب في مواقع Google

يمكنك أيضًا تضمين تطبيقات الويب في كل من الإصدار الكلاسيكي والإصدار الجديد من مواقع Google.

تضمين تطبيق ويب في المواقع الجديدة

لتضمين تطبيق ويب، يجب نشره أولاً. تحتاج أيضًا إلى عنوان URL المنشور من مربع الحوار Deploy.

لتضمين تطبيق ويب في صفحة مواقع جديدة، اتبع الخطوات التالية:

  1. افتح صفحة "المواقع" التي تريد إضافة تطبيق الويب إليها.
  2. حدد إدراج > تضمين عنوان URL.
  3. الصق عنوان URL لتطبيق الويب، ثم انقر على إضافة.

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

تضمين تطبيق ويب في "مواقع Google" الكلاسيكية

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

يمكنك أيضًا تضمين تطبيق الويب في صفحة. يمكنك ربط تطبيق الويب بالموقع أو يمكنك استخدام أي تطبيق ويب لديك عنوان URL له. لتضمين تطبيق ويب في صفحة مواقع Google، اتبع الخطوات التالية:

  1. افتح موقعًا حاليًا لديك حق التعديل فيه أو أنشئ موقعًا جديدًا.
  2. انتقل إلى صفحة موقعك التي تريد تضمين تطبيق الويب فيها.
  3. انقر على رمز التعديل، ثم انقر على إدراج > برمجة تطبيقات Google.
  4. اختر النص البرمجي من القائمة الذي يمثل تطبيق الويب. وإذا كان تطبيق الويب غير مرتبط بهذا الموقع، يمكنك لصقه في عنوان URL لتطبيق الويب بدلاً من ذلك.
  5. انقر على الزر تحديد، وحدد الخيارات المطلوبة من مربع الحوار التالي، ثم انقر على حفظ.
  6. احفظ التغييرات في الصفحة، ومن المفترض أن يظهر تطبيق الويب مضمّنًا في صفحة "المواقع".

تطبيقات الويب وسجل المتصفح

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

توفر "برمجة التطبيقات" واجهة برمجة تطبيقات JavaScript غير متزامنة من جهة العميل للمساعدة في إنشاء تطبيقات ويب مرتبطة بسجلّ المتصفّح:

  • google.script.history تقدم طرقًا للسماح بالاستجابة الديناميكية للتغييرات في سجلّ المتصفح. وهذا يشمل: إرسال الحالات (كائنات بسيطة يمكنك تحديدها) إلى سجل المتصفح، واستبدال أفضل حالة في قائمة السجلّات، وإعداد دالة رد اتصال المستمع للاستجابة لتغييرات السجلّ.

  • يوفّر google.script.url الوسائل لاسترداد معلمات عنوان URL للصفحة الحالية وجزء عنوان URL، في حال توفّرها.

ولا تتوفّر واجهات برمجة تطبيقات السجلّ هذه إلا لتطبيقات الويب. فهي غير مدعومة للأشرطة الجانبية أو مربعات الحوار أو الإضافات. ولا يُنصح أيضًا باستخدام هذه الوظيفة في تطبيقات الويب المضمَّنة في مواقع Google.