إذا أنشأت واجهة مستخدم لنص برمجي، يمكنك نشر النص البرمجي كتطبيق ويب. على سبيل المثال، من الأفضل تقديم نص برمجي يسمح للمستخدمين بجدولة مواعيد مع أعضاء فريق الدعم كتطبيق ويب لكي يتمكّن المستخدمون من الوصول إليه مباشرةً من المتصفِّحات التي يستخدمونها.
يمكن تحويل كل من النصوص البرمجية المستقلة والنصوص البرمجية المرتبطة Google Workspace بالتطبيقات إلى تطبيقات ويب شرط أن تستوفي المتطلبات الواردة أدناه.
متطلبات تطبيقات الويب
يمكن نشر النص البرمجي كتطبيق ويب إذا استوفى المتطلبات التالية:
- ويحتوي على دالة
doGet(e)
أوdoPost(e)
. - تعرض الدالة عنصر خدمة HTML
HtmlOutput
أو عنصر خدمة المحتوىTextOutput
.
معلَمات الطلب
عندما يزور مستخدم تطبيقًا أو يرسل أحد البرامج طلب HTTP GET
إلى التطبيق،
تشغِّل لغة برمجة التطبيقات الدالة doGet(e)
. عندما يرسل أحد البرامج طلب HTTP
POST
إلى التطبيق، تشغّل "برمجة التطبيقات" doPost(e)
بدلاً من ذلك. وفي كلتا الحالتين، تمثّل الوسيطة e
مَعلمة حدث يمكن أن تحتوي على معلومات عن أي مَعلمات طلب. تظهر بنية كائن الحدث في الجدول أدناه:
الحقول | |
---|---|
e.queryString |
قيمة الجزء الخاص بسلسلة طلب البحث لعنوان URL، أو name=alice&n=1&n=2 |
e.parameter |
كائن من أزواج المفتاح/القيمة التي تتوافق مع معلَمات الطلب. يتم عرض القيمة الأولى فقط للمعلمات التي تحتوي على قيم متعددة. {"name": "alice", "n": "1"} |
e.parameters |
عنصر مشابه لـ {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
مسار عنوان URL بعد |
e.contextPath |
السلسلة الفارغة دائمًا غير مستخدَمة. |
e.contentLength |
طول نص الطلب لطلبات POST، أو 332 |
e.postData.length |
مثل 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 ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
في المثال أعلاه، تعرض doGet(e)
الناتج التالي:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
نشر نص برمجي كتطبيق ويب
لنشر نص برمجي كتطبيق ويب، يُرجى اتّباع الخطوات التالية:
- في أعلى يسار مشروع النص البرمجي، انقر على نشر > نشر جديد.
- بجانب "اختيار النوع"، انقر على "تفعيل أنواع النشر" > تطبيق الويب.
- أدخِل معلومات تطبيق الويب في الحقول ضمن "إعداد النشر".
- انقر على نشر.
يمكنك مشاركة عنوان URL لتطبيق الويب مع من تريد استخدام تطبيقك، بشرط أن تكون قد منحتهم الإذن بالوصول.
اختبار نشر تطبيق ويب
لاختبار النص البرمجي كتطبيق ويب، اتَّبِع الخطوات التالية:
- في أعلى يسار مشروع النص البرمجي، انقر على نشر > اختبار عمليات النشر.
- بجانب "اختيار النوع"، انقر على "تفعيل أنواع النشر" > تطبيق الويب.
- ضمن عنوان URL لتطبيق الويب، انقر على نسخ.
الصق عنوان URL في المتصفّح واختبِر تطبيق الويب.
ينتهي عنوان URL هذا بـ
/dev
ويمكن فقط للمستخدمين الذين لديهم الإذن بتعديل النص البرمجي. ويشغّل هذا المثيل من التطبيق دائمًا آخر رمز تم حفظه والغرض منه فقط هو الاختبار أثناء التطوير.
الأذونات
تختلف أذونات تطبيق الويب حسب الطريقة التي تختار بها تنفيذ التطبيق:
- تنفيذ التطبيق مثلي: في هذه الحالة، يتم تنفيذ النص البرمجي دائمًا بصفتك مالك النص البرمجي، بغض النظر عن المستخدم الذي يصل إلى تطبيق الويب.
- تنفيذ التطبيق أثناء وصول المستخدم إلى تطبيق الويب: في هذه الحالة، يعمل النص البرمجي ضمن هوية المستخدم النشط الذي يستخدم تطبيق الويب. يؤدي نهج الإذن هذا إلى عرض تطبيق الويب للبريد الإلكتروني لمالك النص البرمجي عندما يسمح المستخدم بالوصول.
تضمين تطبيق الويب في "مواقع Google"
لتضمين تطبيق ويب في "مواقع Google"، يجب أولاً
نشره. وستحتاج أيضًا إلى عنوان URL الذي تم نشره من مربّع الحوار Deploy
.
لتضمين تطبيق ويب في صفحة المواقع الإلكترونية، اتّبِع الخطوات التالية:
- افتح صفحة المواقع الإلكترونية التي تريد إضافة تطبيق الويب إليها.
- اختَر إدراج > تضمين عنوان URL.
- الصق عنوان URL لتطبيق الويب، ثم انقر على إضافة.
يظهر تطبيق الويب في إطار ضمن معاينة الصفحة. عند نشر الصفحة، قد يحتاج مشاهدو الموقع إلى الحصول على الإذن لتطبيق الويب قبل أن يتم تنفيذه بشكل طبيعي. تقدم تطبيقات الويب غير المصرح بها مطالبات التفويض للمستخدم.
تطبيقات الويب وسجلّ المتصفّح
قد يكون من المستحسن أن يكون لديك تطبيق ويب لـ "برمجة تطبيقات Google" يحاكي تطبيقًا متعدد الصفحات، أو تطبيقًا بواجهة مستخدم ديناميكية يتم التحكّم فيها من خلال مَعلمات عناوين URL. لتنفيذ ذلك بشكل جيد، يمكنك تحديد كائن حالة لتمثيل واجهة المستخدم أو صفحتها الخاصة بالتطبيق، ودفع الحالة إلى سجل المتصفح أثناء تنقل المستخدم في تطبيقك. يمكنك أيضًا الاستماع إلى أحداث السجل حتى يعرض تطبيق الويب واجهة المستخدم الصحيحة عندما يتنقل المستخدم ذهابًا وإيابًا باستخدام أزرار المتصفح. من خلال الاستعلام عن معلَمات عناوين URL في وقت التحميل، يمكنك ضبط واجهة المستخدم الخاصة بتطبيقك بشكل ديناميكي بناءً على هذه المَعلمات، ما يسمح للمستخدم ببدء تشغيل التطبيق في حالة معيّنة.
توفّر "برمجة التطبيقات" واجهتَي برمجة تطبيقات JavaScript غير متزامنين من جهة العميل للمساعدة في إنشاء تطبيقات ويب مرتبطة بسجلّ المتصفّح:
توفِّر
google.script.history
طرقًا للسماح بالاستجابة الديناميكية للتغييرات في سجلّ التصفُّح. ويشمل ذلك ما يلي: دفع الحالات (عناصر بسيطة يمكنك تحديدها) إلى سجلّ المتصفّح، واستبدال الحالة العلوية في تكديس السجلّ، وضبط وظيفة استدعاء المستمع للاستجابة للتغييرات في السجلّ.توفّر علامة
google.script.url
وسائل استرداد معلَمات عنوان URL للصفحة الحالية وجزء عنوان URL في حال توفّرها.
لا تتوفّر واجهات برمجة التطبيقات للسجلّ هذه إلا لتطبيقات الويب. وهي غير مدعومة للأشرطة الجانبية أو مربعات الحوار أو الإضافات. لا يُنصح أيضًا باستخدام هذه الوظيفة في تطبيقات الويب المضمّنة في "مواقع Google".