إذا أنشأت واجهة مستخدم للنص البرمجي، يمكنك نشر النص البرمجي كتطبيق ويب. على سبيل المثال، من الأفضل عرض النص البرمجي الذي يسمح للمستخدمين بجدولة المواعيد مع أعضاء فريق الدعم في شكل تطبيق ويب لكي يتمكّن المستخدمون من الوصول إليه مباشرةً من خلال المتصفّحات.
يمكن تحويل كل من النصوص البرمجية المستقلة والنصوص البرمجية المرتبطة 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 أثناء التحميل، يمكنك أن تجعل تطبيقك ينشئ واجهة المستخدم الخاصة به بشكل ديناميكي استنادًا إلى تلك المعلمات، ما يسمح للمستخدم ببدء التطبيق في حالة معيّنة.
توفّر "برمجة تطبيقات Google" واجهتَي برمجة تطبيقات JavaScript غير متزامنتَين من جهة العميل للمساعدة في إنشاء تطبيقات ويب مرتبطة بسجلّ المتصفّح:
google.script.history
توفّر طرقًا للسماح بالاستجابة الديناميكية للتغييرات في سجلّ المتصفّح. يشمل ذلك ما يلي: دفع الحالات (الكائنات البسيطة التي يمكنك تحديدها) إلى سجلّ المتصفّح، واستبدال الحالة العليا في حزمة السجلّ، وإعداد وظيفة استدعاء أداة استماع للاستجابة للتغييرات في السجلّ.توفّر
google.script.url
وسائل لاسترداد معلَمات عنوان URL وجزء عنوان URL للصفحة الحالية، في حال توفّرها.
لا تتوفّر واجهات برمجة تطبيقات السجلّ هذه إلا لتطبيقات الويب. وهي غير مدعومة للأشرطة الجانبية أو مربعات الحوار أو الوظائف الإضافية. لا يُنصَح أيضًا باستخدام هذه الوظيفة في تطبيقات الويب المضمّنة في "مواقع Google".