برنامه های وب (original) (raw)

اگر برای یک اسکریپت رابط کاربری می‌سازید، می‌توانید اسکریپت را به عنوان یک برنامه وب منتشر کنید. به عنوان مثال، اسکریپتی که به کاربران امکان می‌دهد قرار ملاقات با اعضای تیم پشتیبانی را برنامه‌ریزی کنند، بهتر است به عنوان یک برنامه وب ارائه شود تا کاربران بتوانند مستقیماً از مرورگرهای خود به آن دسترسی داشته باشند.

هم اسکریپت‌های مستقل و هم اسکریپت‌های متصل به برنامه‌های Google Workspace می‌توانند به برنامه‌های وب تبدیل شوند، تا زمانی که الزامات زیر را برآورده کنند.

الزامات برنامه‌های وب

یک اسکریپت می‌تواند به عنوان یک برنامه وب منتشر شود اگر این شرایط را برآورده کند:

پارامترهای درخواست

وقتی کاربری از یک برنامه بازدید می‌کند یا برنامه‌ای یک درخواست HTTP GET به برنامه ارسال می‌کند، Apps Script تابع doGet(e) را اجرا می‌کند. وقتی برنامه‌ای یک درخواست HTTP POST به برنامه ارسال می‌کند، Apps Script به جای آن doPost(e) اجرا می‌کند. در هر دو مورد، آرگومان e نشان‌دهنده یک پارامتر رویداد است که می‌تواند حاوی اطلاعاتی در مورد هر پارامتر درخواست باشد. ساختار شیء رویداد در جدول زیر نشان داده شده است:

فیلدها
e.queryString مقدار بخش رشته پرس‌وجوی URL، یا اگر هیچ رشته پرس‌وجوی مشخص نشده باشد nullname=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 برای درخواست‌های GET332
e.postData.length همانند e.contentLength332
e.postData.type نوع MIME بدنه POSTtext/csv
e.postData.contents متن محتوای بدنه POSTAlice,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
}

استقرار یک اسکریپت به عنوان یک برنامه وب

برای پیاده‌سازی یک اسکریپت به عنوان یک برنامه وب، مراحل زیر را دنبال کنید:

  1. در سمت راست بالای پروژه اسکریپت، روی Deploy > New deployment کلیک کنید.
  2. در کنار «انتخاب نوع»، روی «فعال کردن انواع استقرار» > «برنامه وب» کلیک کنید.
  3. اطلاعات مربوط به برنامه وب خود را در فیلدهای زیر «پیکربندی استقرار» وارد کنید.
  4. روی استقرار کلیک کنید.

شما می‌توانید آدرس اینترنتی (URL) برنامه وب را با کسانی که مایل به استفاده از برنامه خود هستید، به اشتراک بگذارید، البته به شرطی که به آنها دسترسی داده باشید.

آزمایش استقرار یک برنامه وب

برای آزمایش اسکریپت خود به عنوان یک برنامه وب، مراحل زیر را دنبال کنید:

  1. در سمت راست بالای پروژه اسکریپت، روی Deploy > Test deployments کلیک کنید.
  2. در کنار «انتخاب نوع»، روی «فعال کردن انواع استقرار » > «برنامه وب» کلیک کنید.
  3. در زیر نشانی اینترنتی برنامه وب، روی کپی کلیک کنید.
  4. آدرس اینترنتی (URL) را در مرورگر خود وارد کنید و برنامه وب خود را آزمایش کنید.
    این آدرس اینترنتی (URL) به /dev ختم می‌شود و فقط کاربرانی که دسترسی ویرایش اسکریپت را دارند می‌توانند به آن دسترسی داشته باشند. این نمونه از برنامه همیشه آخرین کد ذخیره شده را اجرا می‌کند و فقط برای آزمایش در طول توسعه در نظر گرفته شده است.

برای آزمایش ویژگی OAuth جزئی در برنامه وب، مطمئن شوید که پروژه شما از قبل هیچ مجوزی ندارد. برای باطل کردن هرگونه مجوز موجود، از ScriptApp.invalidateAuth استفاده کنید. برای هر برنامه وب که از قبل مستقر شده و تحت هویت کاربر فعال اجرا می‌شود، فیلد executeAs JSON را در مانیفست به USER_DEPLOYING تغییر دهید.

مجوزها

مجوزهای یک برنامه وب بسته به نحوه اجرای برنامه متفاوت است:

برنامه وب خود را در سایت‌های گوگل جاسازی کنید

برای جاسازی یک برنامه وب در Google Sites، ابتدا باید آن را مستقر کنید . همچنین به آدرس اینترنتی مستقر شده (Deployed URL) از کادر محاوره‌ای Deploy نیاز دارید.

برای جاسازی یک برنامه وب در صفحه Sites ، این مراحل را دنبال کنید:

  1. صفحه سایت‌هایی را که می‌خواهید برنامه وب را به آن اضافه کنید، باز کنید.
  2. گزینه درج > جاسازی نشانی وب را انتخاب کنید.
  3. آدرس اینترنتی برنامه وب را وارد کنید و سپس روی افزودن کلیک کنید.

برنامه وب در یک قاب در پیش‌نمایش صفحه ظاهر می‌شود. وقتی صفحه را منتشر می‌کنید، بینندگان سایت شما ممکن است قبل از اجرای عادی برنامه وب، نیاز به تأیید آن داشته باشند. برنامه‌های وب غیرمجاز، درخواست‌های تأیید را به کاربر نشان می‌دهند.

برنامه‌های وب و تاریخچه مرورگر

ممکن است مطلوب باشد که یک برنامه وب Apps Script یک برنامه چند صفحه‌ای یا یک برنامه با رابط کاربری پویا که با استفاده از پارامترهای URL کنترل می‌شود را شبیه‌سازی کند. برای انجام خوب این کار، می‌توانید یک شیء وضعیت (state object) برای نمایش رابط کاربری یا صفحه برنامه تعریف کنید و وضعیت را هنگام پیمایش کاربر در برنامه، در تاریخچه مرورگر وارد کنید. همچنین می‌توانید به رویدادهای تاریخچه گوش دهید تا برنامه وب شما هنگام پیمایش کاربر با دکمه‌های مرورگر، رابط کاربری صحیح را نمایش دهد. با پرس و جو از پارامترهای URL در زمان بارگذاری، می‌توانید رابط کاربری برنامه خود را به صورت پویا بر اساس آن پارامترها بسازید و به کاربر اجازه دهید برنامه را در یک حالت خاص شروع کند.

Apps Script دو ​​API جاوا اسکریپت ناهمزمان سمت کلاینت ارائه می‌دهد تا به ایجاد برنامه‌های وب که به تاریخچه مرورگر مرتبط هستند، کمک کند:

این APIهای تاریخچه فقط برای برنامه‌های وب در دسترس هستند. آنها برای نوارهای کناری، دیالوگ‌ها یا افزونه‌ها پشتیبانی نمی‌شوند. این قابلیت همچنین برای استفاده در برنامه‌های وب تعبیه شده در Google Sites توصیه نمی‌شود.