ساخت رابط های تقویم گوگل

افزونه‌های Google Workspace می‌توانند رابط‌های کاربری سفارشی‌شده‌ای را هنگام مشاهده یا ویرایش تقویم‌ها و رویدادهای تقویم در اختیار کاربر قرار دهند. این به شما امکان می‌دهد اطلاعات مرتبط بیشتری را در اختیار کاربر قرار دهید، وظایف را خودکار کنید و سیستم‌های شخص ثالث را به تقویم گوگل متصل کنید.

هنگام ساخت یک رابط افزونه برای تقویم گوگل، می‌توانید یک صفحه اصلی ارائه دهید. می‌توانید از یک صفحه اصلی برای چندین میزبان استفاده کنید، یا یک صفحه اصلی خاص برای تقویم گوگل طراحی کنید.

افزونه شما همچنین می‌تواند رابطی را تعریف کند که وقتی کاربر یک رویداد تقویم را باز می‌کند، ظاهر شود.

دسترسی به رابط کاربری افزونه

بسته به نحوه باز شدن، یک افزونه Google Workspace می‌تواند یک رابط صفحه اصلی، یک رابط رویداد تقویم گوگل، یک رابط انتخاب پیوست یا هر سه را تعریف کند:

  • اگر کاربر در نمای تقویم روی نماد افزونه کلیک کند، افزونه تابع calendar.homepageTrigger مربوطه (در صورت وجود) را اجرا می‌کند. این تابع یک کارت صفحه اصلی می‌سازد و برای نمایش به Calendar برمی‌گرداند. اگر هیچ تابع calendar.homepageTrigger تعریف نشده باشد، به جای آن یک کارت صفحه اصلی عمومی نمایش داده می‌شود.
  • اگر کاربر یک رویداد تقویم را باز کند و سپس روی نماد افزونه کلیک کند، یا افزونه هنگام باز شدن یک رویداد توسط کاربر باز باشد، افزونه تابع eventOpenTrigger مربوطه (در صورت وجود) را اجرا می‌کند. این تابع رابط رویداد تقویم افزونه را می‌سازد و برای نمایش به تقویم گوگل برمی‌گرداند.
  • اگر افزونه یک تابع eventAttachmentTrigger تعریف کند، افزونه به عنوان یک ارائه‌دهنده پیوست ظاهر می‌شود، زمانی که کاربر هنگام ویرایش یک رویداد تقویم، روی افزودن پیوست کلیک می‌کند. وقتی افزونه انتخاب می‌شود، تابع eventAttachmentTrigger رابط انتخاب پیوست افزونه را می‌سازد و آن را برای نمایش به تقویم گوگل برمی‌گرداند.

ساخت رابط کاربری افزونه تقویم

با دنبال کردن این مراحل می‌توانید تقویم گوگل را با افزونه‌ی Google Workspace گسترش دهید:

  1. تصمیم بگیرید که آیا می‌خواهید افزونه شما یک صفحه اصلی مخصوص تقویم داشته باشد یا خیر. همچنین تصمیم بگیرید که آیا می‌خواهید در حین ویرایش رویدادهای تقویم توسط کاربر، یک رابط کاربری سفارشی ارائه دهید یا خیر.
  2. فیلدهای addOns.common و addOns.calendar مناسب را به مانیفست پروژه اسکریپت افزونه، شامل هرگونه محدوده مورد نیاز، اضافه کنید.
  3. اگر یک صفحه اصلی مخصوص تقویم ارائه می‌دهید، تابع calendar.homepageTrigger را برای ساخت این رابط پیاده‌سازی کنید. همچنین می‌توانید از رابط common.homepageTrigger برای چندین میزبان Google Workspace استفاده کنید.
  4. اگر در حال ارائه یک رابط رویداد تقویم هستید، باید یک تابع calendar.eventOpenTrigger برای ساخت این رابط پیاده‌سازی کنید. برای جزئیات بیشتر به بخش «توسعه رابط رویداد تقویم» مراجعه کنید.
  5. توابع فراخوانی مرتبط مورد نیاز برای پاسخ به تعاملات رابط کاربری کاربر، مانند کلیک دکمه‌ها، را پیاده‌سازی کنید.

صفحات اصلی تقویم

تقویم گوگل از نمایش صفحات اصلی افزونه‌ی Google Workspace پشتیبانی می‌کند. برای نمایش صفحه اصلی مشترک افزونه‌تان در تقویم گوگل، کافیست مطمئن شوید که فیلد addOns.calendar در فایل مانیفست افزونه وجود دارد.

روش دیگر، اضافه کردن یک calendar.homepageTrigger به مانیفست افزونه برای ارائه یک صفحه اصلی مخصوص تقویم است.

در هر صورت، شما باید نام تابع تریگر صفحه اصلی را در پروژه اسکریپت افزونه خود ارائه دهید. این تابع به طور خودکار برای ساخت صفحه اصلی تقویم گوگل در صورت نیاز فراخوانی می‌شود. شما باید این تابع را برای ساخت و بازگرداندن یک Card یا آرایه‌ای از اشیاء Card که صفحه اصلی را تشکیل می‌دهند، پیاده‌سازی کنید. تابع تریگر صفحه اصلی یک شیء رویداد را به عنوان پارامتر ارسال می‌کند که حاوی برخی اطلاعات کلی مانند پلتفرم کلاینت است. می‌توانید از داده‌های شیء رویداد برای سفارشی‌سازی ساخت صفحه اصلی استفاده کنید.

گسترش رابط رویداد تقویم

تقویم گوگل برای تعیین اینکه چه رابطی (در صورت وجود) هنگام ویرایش یک رویداد تقویم توسط کاربر نمایش داده شود، به یک تریگر زمینه‌ای متکی است. وقتی تریگر فعال می‌شود، تابع تریگر زمینه‌ای مشخص شده توسط فیلد calendar.eventOpenTrigger در مانیفست افزونه را اجرا می‌کند.

شما باید تابعی که در فیلد calendar.eventOpenTrigger نامگذاری شده است را پیاده‌سازی کنید. این تابع یک شیء رویداد را به عنوان آرگومان می‌پذیرد و باید یا یک شیء Card واحد یا آرایه‌ای از اشیاء Card را برای تقویم برگرداند تا در حالی که کاربر رویداد را باز دارد، نمایش داده شود.

اشیاء رویداد

وقتی کاربر یک رویداد تقویم را باز می‌کند، یک شیء رویداد ایجاد شده و به تابع محرک زمینه‌ای calendar.eventOpenTrigger ارسال می‌شود. تابع محرک می‌تواند از اطلاعات موجود در این شیء رویداد برای تعیین نحوه ساخت کارت‌های افزونه یا کنترل رفتار افزونه استفاده کند. اشیاء رویداد همچنین هنگام باز شدن یک افزونه برای اولین بار و هنگامی که کاربر روی ویجت‌های تعاملی کلیک یا آنها را انتخاب می‌کند، ایجاد شده و به توابع homepageTrigger ارسال می‌شوند.

ساختار کامل اشیاء رویداد در اشیاء رویداد شرح داده شده است. وقتی تقویم برنامه میزبان فعال افزونه است، اشیاء رویداد محرک زمینه‌ای و تعامل ویجت شامل فیلد شیء رویداد تقویم می‌شوند که اطلاعات کلاینت خاص تقویم را در خود جای می‌دهد.

به‌روزرسانی رویدادهای تقویم

علاوه بر calendar.eventOpenTrigger زمینه‌ای که وقتی کاربر یک رویداد Calendar را برای ویرایش باز می‌کند، فعال می‌شود، می‌توانید calendar.eventUpdateTrigger را نیز تعریف کنید که وقتی کاربر یک رویداد Calendar را به‌روزرسانی و ذخیره می‌کند، فعال می‌شود. این trigger فقط در صورتی فعال می‌شود که کاربر یک یا چند مورد از ویرایش‌های زیر را انجام دهد:

  • یک یا چند شرکت‌کننده اضافه می‌کند.
  • یک یا چند شرکت‌کننده را حذف می‌کند.
  • یک راهکار کنفرانس متفاوت اضافه می‌کند یا به آن تغییر می‌دهد.

وقتی این تریگر فعال می‌شود، تابع تریگر مشخص شده توسط فیلد manifest در calendar.eventUpdateTrigger را اجرا می‌کند. این تابع قبل از ذخیره شدن ویرایش رویداد تقویم اجرا می‌شود.

calendar.eventUpdateTrigger معمولاً برای انجام یک یا چند مورد از موارد زیر استفاده می‌شود:

  • رابط رویداد تقویم افزونه را در پاسخ به تغییرات کاربر در رویداد تقویم، به‌روزرسانی کنید.
  • همگام‌سازی داده‌های رویداد تقویم با یک سیستم شخص ثالث، مانند یک سیستم کنفرانس که به تقویم گوگل متصل است.

اگر نیاز دارید که افزونه شما تنظیماتی را روی داده‌های یک رویداد تقویم (مانند فهرست شرکت‌کنندگان) انجام دهد، باید فیلد manifest افزونه calendar.currentEventAccess را روی WRITE یا READ_WRITE تنظیم کنید. این امر همچنین مستلزم آن است که افزونه دامنه https://www.googleapis.com/auth/calendar.addons.current.event.write را داشته باشد.

افزودن راهکارهای کنفرانس

راهکارهای کنفرانس، گزینه‌های کنفرانس شخص ثالثی را نشان می‌دهند که کاربران می‌توانند به رویدادهای تقویم گوگل (Google Calendar) پیوست کنند. مستندات نمای کلی کنفرانس شخص ثالث، جزئیاتی در مورد نحوه ساخت افزونه‌ای که راهکارهای جدید کنفرانس را اضافه می‌کند، ارائه می‌دهد. ساخت رابط کاربری برای این نوع افزونه ضروری نیست؛ راهکارهای اضافه شده به سادگی به عنوان گزینه‌هایی در منوی کشویی رابط کاربری رویداد تقویم گوگل ظاهر می‌شوند.