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

افزونه‌های 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 برای چندین برنامه میزبان استفاده کنید.
  4. اگر رابط رویداد تقویم (Calendar event interface) ارائه می‌دهید، برای ساخت این رابط، تابع 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 را داشته باشد.

اضافه کردن راهکارهای کنفرانس

اگر از یک سیستم کنفرانس شخص ثالث استفاده می‌کنید، می‌توانید با افزودن راهکارهای کنفرانس، آن را با تقویم ادغام کنید. این ویژگی قبلاً به عنوان افزونه‌های کنفرانس تقویم در نسخه بتا بود.

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