تعاملات کاربر را دریافت کرده و به آنها پاسخ دهید

این صفحه توضیح می‌دهد که چگونه برنامه Google Chat شما می‌تواند تعاملات کاربر را دریافت کند و به آن پاسخ دهد، که به عنوان رویدادهای تعامل برنامه چت Google نیز شناخته می‌شود.

در این صفحه نحوه انجام کارهای زیر توضیح داده شده است:

  • برنامه چت خود را برای دریافت رویدادهای تعامل پیکربندی کنید.
  • رویداد تعامل را در زیرساخت خود پردازش کنید.
  • در صورت لزوم، به رویدادهای تعامل پاسخ دهید.

یک برنامه چت تعاملی به عنوان افزونه Google Workspace بسازید

برای ایجاد یک برنامه چت که با کاربران چت در تعامل است، می‌توانید یک افزونه Google Workspace بسازید که گپ را گسترش دهد. برنامه Chat به جای دریافت رویدادهای تعاملی از Chat API، اشیاء رویداد افزودنی را دریافت کرده و به آنها پاسخ می دهد. برای کسب اطلاعات بیشتر، به Extend Google Chat در اسناد افزودنی Google Workspace مراجعه کنید.

پیش نیازها

یک برنامه Google Chat که برای ویژگی‌های تعاملی فعال است. برای ایجاد یک برنامه چت تعاملی، یکی از شروع سریع زیر را بر اساس معماری برنامه ای که می خواهید استفاده کنید، انجام دهید:

انواع رویدادهای تعاملی

رویداد تعامل برنامه گپ Google نشان‌دهنده هر اقدامی است که کاربر برای فراخوانی یا تعامل با یک برنامه Chat انجام می‌دهد، مانند @ نام بردن از یک برنامه Chat یا افزودن آن به یک فضا.

هنگامی که کاربران با یک برنامه گپ تعامل می کنند، Google Chat یک رویداد تعاملی را به برنامه Chat ارسال می کند که به عنوان یک نوع Event در Chat API نشان داده می شود. برنامه چت می تواند از رویداد برای پردازش تعامل استفاده کند و به صورت اختیاری، با یک پیام پاسخ دهد.

برای هر نوع تعامل کاربر، Google Chat نوع متفاوتی از رویداد تعاملی را ارسال می‌کند که به برنامه چت شما کمک می‌کند تا هر نوع رویداد را مطابق با آن مدیریت کند. نوع رویداد تعامل با استفاده از شی eventType نشان داده می شود.

به عنوان مثال، Google Chat از نوع رویداد ADDED_TO_SPACE برای هر تعاملی استفاده می‌کند که در آن کاربر برنامه Chat را به یک فضا اضافه می‌کند، به طوری که برنامه Chat می‌تواند بلافاصله با یک پیام خوش‌آمدگویی در فضا پاسخ دهد .

برنامه چت پیام خوشامدگویی را ارسال می کند.
شکل 1 : هنگامی که یک کاربر یک برنامه چت را به یک فضا اضافه می کند، برنامه Chat یک رویداد تعاملی ADDED_TO_SPACE را دریافت می کند که برنامه Chat برای ارسال پیام خوشامدگویی در فضا مدیریت می کند.

جدول زیر تعاملات متداول کاربر، نوع رویداد تعاملی که برنامه‌های گپ دریافت می‌کنند و نحوه پاسخگویی معمولاً برنامه‌های چت را نشان می‌دهد:

تعامل کاربر eventType پاسخ معمولی از یک برنامه چت
یک کاربر یک برنامه چت را با ذکر @ یا با استفاده از دستور اسلش فراخوانی می کند. MESSAGE برنامه چت بر اساس محتوای پیام پاسخ می دهد. به عنوان مثال، یک برنامه Chat با پیامی به دستور /about پاسخ می دهد که وظایفی را که برنامه Chat می تواند انجام دهد را توضیح می دهد.
کاربر یک برنامه چت را به یک فضا اضافه می کند. ADDED_TO_SPACE برنامه چت پیامی ارسال می کند که توضیح می دهد چه کاری انجام می دهد و چگونه کاربران در فضا می توانند با آن تعامل داشته باشند.
کاربر یک برنامه چت را از یک فضا حذف می کند. REMOVED_FROM_SPACE برنامه Chat هر گونه اعلان های ورودی را که برای فضا پیکربندی شده اند (مانند حذف یک هوک ) حذف می کند و حافظه داخلی را پاک می کند.
کاربر روی یک کارت از پیام، گفتگو یا صفحه اصلی برنامه چت، روی یک دکمه کلیک می کند. CARD_CLICKED برنامه چت یا هر داده ای را که کاربر ارسال کرده است پردازش و ذخیره می کند یا کارت دیگری را برمی گرداند.
یک کاربر صفحه اصلی برنامه چت را با کلیک کردن بر روی برگه صفحه اصلی در یک پیام 1:1 باز می کند. APP_HOME برنامه چت یک کارت استاتیک یا تعاملی را از صفحه اصلی برمی‌گرداند.
یک کاربر فرمی را از صفحه اصلی برنامه چت ارسال می کند. SUBMIT_FORM برنامه چت یا هر داده ای را که کاربر ارسال کرده است پردازش و ذخیره می کند یا کارت دیگری را برمی گرداند.

برای مشاهده همه رویدادهای تعامل پشتیبانی شده، به مستندات مرجع EventType مراجعه کنید.

رویدادهای تعامل از دیالوگ ها

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

  • isDialogEvent روی true تنظیم شده است.
  • DialogEventType روشن می کند که آیا تعامل باعث باز شدن یک گفتگو می شود، اطلاعات را از یک گفتگو ارسال می کند یا یک گفتگو را می بندد.

جدول زیر تعاملات رایج با دیالوگ‌ها، انواع رویداد گفتگوی مربوطه، و توضیحی در مورد نحوه پاسخگویی معمولاً برنامه‌های چت را نشان می‌دهد:

تعامل کاربر با دیالوگ نوع رویداد گفتگو پاسخ معمولی
یک کاربر یک درخواست گفتگو را راه اندازی می کند. به عنوان مثال، آنها از یک دستور اسلش استفاده می کنند یا روی دکمه ای از یک پیام کلیک می کنند. REQUEST_DIALOG برنامه چت گفتگو را باز می کند.
کاربر با کلیک بر روی یک دکمه اطلاعات را در کادر گفتگو ارسال می کند. SUBMIT_DIALOG برنامه چت یا به گفتگوی دیگری می رود یا برای تکمیل تعامل، گفتگو را می بندد.
یک کاربر قبل از ارسال اطلاعات از گفتگو خارج می شود یا می بندد. CANCEL_DIALOG در صورت تمایل، برنامه چت می‌تواند با یک پیام جدید پاسخ دهد، یا پیام یا کارتی را که کاربر گفتگو را از آن باز کرده است، به‌روزرسانی کند.

برای اطلاعات بیشتر، باز کردن گفتگوهای تعاملی را ببینید.

رویدادهای تعامل برنامه چت را دریافت کنید

این بخش نحوه دریافت و پردازش رویدادهای تعاملی را برای برنامه چت شما شرح می دهد.

برنامه چت خود را برای دریافت رویدادهای تعامل پیکربندی کنید

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

برای هر یک از ویژگی‌های تعاملی که می‌خواهید بسازید، باید پیکربندی خود را در Chat API به‌روزرسانی کنید تا Google Chat بتواند رویدادهای تعاملی مرتبط را به برنامه Chat شما ارسال کند:

  1. در کنسول Google Cloud، به صفحه Chat API بروید و روی صفحه پیکربندی کلیک کنید:

    به صفحه پیکربندی Chat API بروید

  2. در بخش ویژگی‌های تعاملی ، تنظیمات را مرور کنید و براساس ویژگی‌هایی که می‌خواهید بسازید، به‌روزرسانی کنید:

    میدان توضیحات
    کارکرد مورد نیاز. مجموعه‌ای از فیلدها که نحوه تعامل برنامه چت با کاربران را تعیین می‌کند:
    • دریافت پیام‌های ۱:۱ : کاربران می‌توانند برنامه چت را مستقیماً در چت Google پیدا کنند و پیام دهند.
    • پیوستن به فضاها و مکالمات گروهی : کاربران می توانند برنامه چت را به فضاها و مکالمات گروهی اضافه کنند.
    تنظیمات اتصال مورد نیاز. نقطه پایانی برای برنامه Chat که یکی از موارد زیر است:
    • URL نقطه پایانی HTTP : یک نقطه پایانی HTTPS که میزبان اجرای برنامه چت است.
    • Apps Script : شناسه استقرار برای پروژه Apps Script که یک برنامه Chat را پیاده سازی می کند.
    • نام موضوع Cloud Pub/Sub : یک موضوع Pub/Sub که برنامه Chat به عنوان نقطه پایانی در آن مشترک شده است.
    • Dialogflow : برنامه Chat را با یکپارچه سازی Dialogflow ثبت می کند. برای اطلاعات بیشتر، به ساخت برنامه گفتگوی Google Chat که زبان طبیعی را می‌فهمد، مراجعه کنید.
    دستورات اسلش اختیاری. دستوراتی که می توانند برای کاربران در چت Google ظاهر شوند. به کاربران اجازه می‌دهد تا عملکردهای اصلی برنامه چت شما را در Google Chat ببینند و اقدام خاصی را که می‌خواهند با آن تعامل داشته باشند انتخاب کنند. برای اطلاعات بیشتر، پاسخ به دستورات اسلش را به‌عنوان برنامه چت ببینید.
    پیش نمایش پیوندها اختیاری. الگوهای نشانی وب که برنامه چت می شناسد و محتوای اضافی را برای زمانی که کاربران پیوند می فرستند ارائه می کند. برای اطلاعات بیشتر، پیش‌نمایش پیوندها را ببینید.
    دید اختیاری. حداکثر پنج نفر یا یک یا چند گروه Google که می‌توانند برنامه چت شما را مشاهده و نصب کنند. از این فیلد برای آزمایش برنامه چت یا اشتراک گذاری برنامه چت با تیم خود استفاده کنید. برای اطلاعات بیشتر، تست ویژگی‌های تعاملی را ببینید.
  3. روی ذخیره کلیک کنید. وقتی پیکربندی برنامه گپ را ذخیره می‌کنید، برنامه گپ شما برای کاربران مشخص‌شده در سازمان Google Workspace شما در دسترس است.

برنامه چت شما اکنون برای دریافت رویدادهای تعاملی از گپ Google پیکربندی شده است.

مدیریت تماس های مجدد HTTP برای سرویس شما

اگر درخواست HTTPS به سرویس شما با شکست مواجه شود (مانند مهلت زمانی، خرابی موقت شبکه، یا کد وضعیت غیر 2xx HTTPS)، ممکن است گپ Google چند بار در عرض چند دقیقه تحویل را دوباره امتحان کند (اما این تضمین نمی‌شود). در نتیجه، یک برنامه چت ممکن است در شرایط خاص چند بار پیام مشابهی را دریافت کند. اگر درخواست با موفقیت تکمیل شود اما یک بار پیام نامعتبر برگرداند، Google Chat درخواست را دوباره امتحان نمی‌کند.

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

این بخش توضیح می‌دهد که چگونه برنامه‌های چت Google می‌توانند رویدادهای تعامل را پردازش کرده و به آن پاسخ دهند.

پس از اینکه برنامه چت شما یک رویداد تعاملی از چت Google دریافت کرد، می‌تواند به طرق مختلف پاسخ دهد. در بسیاری از موارد، برنامه های چت تعاملی با یک پیام به کاربر پاسخ می دهند. برنامه Google Chat همچنین می‌تواند برخی از اطلاعات را از منبع داده جستجو کند، اطلاعات رویداد تعامل یا تقریباً هر چیز دیگری را ضبط کند. این رفتار پردازشی اساساً همان چیزی است که برنامه Google Chat را تعریف می کند.

برای پاسخگویی همزمان، یک برنامه چت باید ظرف 30 ثانیه پاسخ دهد و پاسخ باید در فضایی که تعامل رخ داده است پست شود. در غیر این صورت، برنامه چت می تواند به صورت ناهمزمان پاسخ دهد.

برای هر رویداد تعاملی، برنامه‌های گپ یک بدنه درخواست دریافت می‌کنند که بار JSON است که رویداد را نشان می‌دهد. می توانید از اطلاعات برای پردازش پاسخ استفاده کنید. برای نمونه‌هایی از بارهای رویداد، به انواع رویدادهای تعامل برنامه گپ مراجعه کنید.

نمودار زیر نشان می‌دهد که برنامه Google Chat معمولاً چگونه انواع مختلف رویدادهای تعاملی را پردازش می‌کند یا به آنها پاسخ می‌دهد:

معماری نحوه پردازش برنامه‌های چت Google وقایع تعامل.

در زمان واقعی پاسخ دهید

رویدادهای تعاملی به برنامه‌های چت اجازه می‌دهند به صورت هم‌زمان یا هم‌زمان پاسخ دهند. پاسخ های همزمان نیازی به احراز هویت ندارند.

برای پاسخگویی در زمان واقعی، برنامه چت باید یک شیء Message برگرداند. برای پاسخ دادن با یک پیام در فضای خالی، شی Message می‌تواند شامل text ، cardsV2 و اشیاء accessoryWidgets باشد. برای استفاده با انواع دیگر پاسخ ها، راهنماهای زیر را ببینید:

با پیام پاسخ دهید

در این مثال، برنامه چت شما هر زمان که به فضایی اضافه شود پیام متنی ایجاد کرده و ارسال می کند. برای آشنایی با بهترین روش‌ها برای ورود کاربران به برنامه، به معرفی کاربران به برنامه گپ خود مراجعه کنید.

برای ارسال پیام نوشتاری هنگامی که کاربر برنامه چت شما را به یک فضا اضافه می‌کند، برنامه چت شما به یک رویداد تعاملی ADDED_TO_SPACE پاسخ می‌دهد. برای پاسخ دادن به رویدادهای تعامل ADDED_TO_SPACE با یک پیام متنی، از کد زیر استفاده کنید:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

اسکریپت برنامه ها

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
function onAddToSpace(event) {

  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

نمونه کد پیام متنی زیر را برمی گرداند:

نمونه پیام ورود.

به صورت ناهمزمان پاسخ دهید

گاهی اوقات برنامه‌های چت باید پس از 30 ثانیه به یک رویداد تعاملی پاسخ دهند یا کارهایی را خارج از فضایی که رویداد تعاملی ایجاد شده است انجام دهند. به عنوان مثال، یک برنامه چت ممکن است نیاز داشته باشد پس از انجام یک کار طولانی مدت به کاربر پاسخ دهد. در این حالت، برنامه‌های چت می‌توانند با تماس با Google Chat API به صورت ناهمزمان پاسخ دهند.

برای ایجاد پیام با استفاده از Chat API، به ایجاد پیام مراجعه کنید. برای راهنمایی در مورد استفاده از روش‌های دیگر Chat API، به نمای کلی Chat API مراجعه کنید.

،

این صفحه توضیح می‌دهد که چگونه برنامه Google Chat شما می‌تواند تعاملات کاربر را دریافت کند و به آن پاسخ دهد، که به عنوان رویدادهای تعامل برنامه چت Google نیز شناخته می‌شود.

در این صفحه نحوه انجام کارهای زیر توضیح داده شده است:

  • برنامه چت خود را برای دریافت رویدادهای تعامل پیکربندی کنید.
  • رویداد تعامل را در زیرساخت خود پردازش کنید.
  • در صورت لزوم، به رویدادهای تعامل پاسخ دهید.

یک برنامه چت تعاملی به عنوان افزونه Google Workspace بسازید

برای ایجاد یک برنامه چت که با کاربران چت در تعامل است، می‌توانید یک افزونه Google Workspace بسازید که گپ را گسترش دهد. برنامه Chat به جای دریافت رویدادهای تعاملی از Chat API، اشیاء رویداد افزودنی را دریافت کرده و به آنها پاسخ می دهد. برای کسب اطلاعات بیشتر، به Extend Google Chat در اسناد افزودنی Google Workspace مراجعه کنید.

پیش نیازها

یک برنامه Google Chat که برای ویژگی‌های تعاملی فعال است. برای ایجاد یک برنامه چت تعاملی، یکی از شروع سریع زیر را بر اساس معماری برنامه ای که می خواهید استفاده کنید، انجام دهید:

انواع رویدادهای تعاملی

رویداد تعامل برنامه گپ Google نشان‌دهنده هر اقدامی است که کاربر برای فراخوانی یا تعامل با یک برنامه Chat انجام می‌دهد، مانند @ نام بردن از یک برنامه Chat یا افزودن آن به یک فضا.

هنگامی که کاربران با یک برنامه گپ تعامل می کنند، Google Chat یک رویداد تعاملی را به برنامه Chat ارسال می کند که به عنوان یک نوع Event در Chat API نشان داده می شود. برنامه چت می تواند از رویداد برای پردازش تعامل استفاده کند و به صورت اختیاری، با یک پیام پاسخ دهد.

برای هر نوع تعامل کاربر، Google Chat نوع متفاوتی از رویداد تعاملی را ارسال می‌کند که به برنامه چت شما کمک می‌کند تا هر نوع رویداد را مطابق با آن مدیریت کند. نوع رویداد تعامل با استفاده از شی eventType نشان داده می شود.

به عنوان مثال، Google Chat از نوع رویداد ADDED_TO_SPACE برای هر تعاملی استفاده می‌کند که در آن کاربر برنامه Chat را به یک فضا اضافه می‌کند، به طوری که برنامه Chat می‌تواند بلافاصله با یک پیام خوش‌آمدگویی در فضا پاسخ دهد .

برنامه چت پیام خوشامدگویی را ارسال می کند.
شکل 1 : هنگامی که یک کاربر یک برنامه چت را به یک فضا اضافه می کند، برنامه Chat یک رویداد تعاملی ADDED_TO_SPACE را دریافت می کند که برنامه Chat برای ارسال پیام خوشامدگویی در فضا مدیریت می کند.

جدول زیر تعاملات متداول کاربر، نوع رویداد تعاملی که برنامه‌های گپ دریافت می‌کنند و نحوه پاسخگویی معمولاً برنامه‌های چت را نشان می‌دهد:

تعامل کاربر eventType پاسخ معمولی از یک برنامه چت
یک کاربر یک برنامه چت را با ذکر @ یا با استفاده از دستور اسلش فراخوانی می کند. MESSAGE برنامه چت بر اساس محتوای پیام پاسخ می دهد. به عنوان مثال، یک برنامه Chat با پیامی به دستور /about پاسخ می دهد که وظایفی را که برنامه Chat می تواند انجام دهد را توضیح می دهد.
کاربر یک برنامه چت را به یک فضا اضافه می کند. ADDED_TO_SPACE برنامه چت پیامی ارسال می کند که توضیح می دهد چه کاری انجام می دهد و چگونه کاربران در فضا می توانند با آن تعامل داشته باشند.
کاربر یک برنامه چت را از یک فضا حذف می کند. REMOVED_FROM_SPACE برنامه Chat هر گونه اعلان های ورودی را که برای فضا پیکربندی شده اند (مانند حذف یک هوک ) حذف می کند و حافظه داخلی را پاک می کند.
کاربر روی یک کارت از پیام، گفتگو یا صفحه اصلی برنامه چت، روی یک دکمه کلیک می کند. CARD_CLICKED برنامه چت یا هر داده ای را که کاربر ارسال کرده است پردازش و ذخیره می کند یا کارت دیگری را برمی گرداند.
یک کاربر صفحه اصلی برنامه چت را با کلیک کردن بر روی برگه صفحه اصلی در یک پیام 1:1 باز می کند. APP_HOME برنامه چت یک کارت استاتیک یا تعاملی را از صفحه اصلی برمی‌گرداند.
یک کاربر فرمی را از صفحه اصلی برنامه چت ارسال می کند. SUBMIT_FORM برنامه چت یا هر داده ای را که کاربر ارسال کرده است پردازش و ذخیره می کند یا کارت دیگری را برمی گرداند.

برای مشاهده همه رویدادهای تعامل پشتیبانی شده، به مستندات مرجع EventType مراجعه کنید.

رویدادهای تعامل از دیالوگ ها

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

  • isDialogEvent روی true تنظیم شده است.
  • DialogEventType روشن می کند که آیا تعامل باعث باز شدن یک گفتگو می شود، اطلاعات را از یک گفتگو ارسال می کند یا یک گفتگو را می بندد.

جدول زیر تعاملات رایج با دیالوگ‌ها، انواع رویداد گفتگوی مربوطه، و توضیحی در مورد نحوه پاسخگویی معمولاً برنامه‌های چت را نشان می‌دهد:

تعامل کاربر با دیالوگ نوع رویداد گفتگو پاسخ معمولی
یک کاربر یک درخواست گفتگو را راه اندازی می کند. به عنوان مثال، آنها از یک دستور اسلش استفاده می کنند یا روی دکمه ای از یک پیام کلیک می کنند. REQUEST_DIALOG برنامه چت گفتگو را باز می کند.
کاربر با کلیک بر روی یک دکمه اطلاعات را در کادر گفتگو ارسال می کند. SUBMIT_DIALOG برنامه چت یا به گفتگوی دیگری می رود یا برای تکمیل تعامل، گفتگو را می بندد.
یک کاربر قبل از ارسال اطلاعات از گفتگو خارج می شود یا می بندد. CANCEL_DIALOG در صورت تمایل، برنامه چت می‌تواند با یک پیام جدید پاسخ دهد، یا پیام یا کارتی را که کاربر گفتگو را از آن باز کرده است، به‌روزرسانی کند.

برای اطلاعات بیشتر، باز کردن گفتگوهای تعاملی را ببینید.

رویدادهای تعامل برنامه چت را دریافت کنید

این بخش نحوه دریافت و پردازش رویدادهای تعاملی را برای برنامه چت شما شرح می دهد.

برنامه چت خود را برای دریافت رویدادهای تعامل پیکربندی کنید

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

برای هر یک از ویژگی‌های تعاملی که می‌خواهید بسازید، باید پیکربندی خود را در Chat API به‌روزرسانی کنید تا Google Chat بتواند رویدادهای تعاملی مرتبط را به برنامه Chat شما ارسال کند:

  1. در کنسول Google Cloud، به صفحه Chat API بروید و روی صفحه پیکربندی کلیک کنید:

    به صفحه پیکربندی Chat API بروید

  2. در بخش ویژگی‌های تعاملی ، تنظیمات را مرور کنید و براساس ویژگی‌هایی که می‌خواهید بسازید، به‌روزرسانی کنید:

    میدان توضیحات
    کارکرد مورد نیاز. مجموعه‌ای از فیلدها که نحوه تعامل برنامه چت با کاربران را تعیین می‌کند:
    • دریافت پیام‌های ۱:۱ : کاربران می‌توانند برنامه چت را مستقیماً در چت Google پیدا کنند و پیام دهند.
    • پیوستن به فضاها و مکالمات گروهی : کاربران می توانند برنامه چت را به فضاها و مکالمات گروهی اضافه کنند.
    تنظیمات اتصال مورد نیاز. نقطه پایانی برای برنامه Chat که یکی از موارد زیر است:
    • URL نقطه پایانی HTTP : یک نقطه پایانی HTTPS که میزبان اجرای برنامه چت است.
    • Apps Script : شناسه استقرار برای پروژه Apps Script که یک برنامه Chat را پیاده سازی می کند.
    • نام موضوع Cloud Pub/Sub : یک موضوع Pub/Sub که برنامه Chat به عنوان نقطه پایانی در آن مشترک شده است.
    • Dialogflow : برنامه Chat را با یکپارچه سازی Dialogflow ثبت می کند. برای اطلاعات بیشتر، به ساخت برنامه گفتگوی Google Chat که زبان طبیعی را می‌فهمد، مراجعه کنید.
    دستورات اسلش اختیاری. دستوراتی که می توانند برای کاربران در چت Google ظاهر شوند. به کاربران اجازه می‌دهد تا عملکردهای اصلی برنامه چت شما را در Google Chat ببینند و اقدام خاصی را که می‌خواهند با آن تعامل داشته باشند انتخاب کنند. برای اطلاعات بیشتر، پاسخ به دستورات اسلش را به‌عنوان برنامه چت ببینید.
    پیش نمایش پیوندها اختیاری. الگوهای نشانی وب که برنامه چت می شناسد و محتوای اضافی را برای زمانی که کاربران پیوند می فرستند ارائه می کند. برای اطلاعات بیشتر، پیش‌نمایش پیوندها را ببینید.
    دید اختیاری. حداکثر پنج نفر یا یک یا چند گروه Google که می‌توانند برنامه چت شما را مشاهده و نصب کنند. از این فیلد برای آزمایش برنامه چت یا اشتراک گذاری برنامه چت با تیم خود استفاده کنید. برای اطلاعات بیشتر، تست ویژگی‌های تعاملی را ببینید.
  3. روی ذخیره کلیک کنید. وقتی پیکربندی برنامه گپ را ذخیره می‌کنید، برنامه گپ شما برای کاربران مشخص‌شده در سازمان Google Workspace شما در دسترس است.

برنامه چت شما اکنون برای دریافت رویدادهای تعاملی از گپ Google پیکربندی شده است.

کنترل مجدد تماس HTTP برای سرویس شما

اگر درخواست HTTPS به سرویس شما با شکست مواجه شود (مانند مهلت زمانی، خرابی موقت شبکه، یا کد وضعیت غیر 2xx HTTPS)، ممکن است گپ Google چند بار در عرض چند دقیقه تحویل را دوباره امتحان کند (اما این تضمین نمی‌شود). در نتیجه، یک برنامه چت ممکن است در شرایط خاص چند بار پیام مشابهی را دریافت کند. اگر درخواست با موفقیت تکمیل شود اما یک بار پیام نامعتبر برگرداند، Google Chat درخواست را دوباره امتحان نمی‌کند.

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

این بخش توضیح می‌دهد که چگونه برنامه‌های چت Google می‌توانند رویدادهای تعامل را پردازش کرده و به آن پاسخ دهند.

پس از اینکه برنامه چت شما یک رویداد تعاملی از چت Google دریافت کرد، می‌تواند به طرق مختلف پاسخ دهد. در بسیاری از موارد، برنامه های چت تعاملی با یک پیام به کاربر پاسخ می دهند. برنامه Google Chat همچنین می‌تواند برخی از اطلاعات را از منبع داده جستجو کند، اطلاعات رویداد تعامل یا تقریباً هر چیز دیگری را ضبط کند. این رفتار پردازشی اساساً همان چیزی است که برنامه Google Chat را تعریف می کند.

برای پاسخگویی همزمان، یک برنامه چت باید ظرف 30 ثانیه پاسخ دهد و پاسخ باید در فضایی که تعامل رخ داده است پست شود. در غیر این صورت، برنامه چت می تواند به صورت ناهمزمان پاسخ دهد.

برای هر رویداد تعاملی، برنامه‌های گپ یک بدنه درخواست دریافت می‌کنند که بار JSON است که رویداد را نشان می‌دهد. می توانید از اطلاعات برای پردازش پاسخ استفاده کنید. برای نمونه‌هایی از بارهای رویداد، به انواع رویدادهای تعامل برنامه گپ مراجعه کنید.

نمودار زیر نشان می‌دهد که برنامه Google Chat معمولاً چگونه انواع مختلف رویدادهای تعاملی را پردازش می‌کند یا به آنها پاسخ می‌دهد:

معماری نحوه پردازش برنامه‌های چت Google وقایع تعامل.

در زمان واقعی پاسخ دهید

رویدادهای تعاملی به برنامه‌های چت اجازه می‌دهند به صورت هم‌زمان یا هم‌زمان پاسخ دهند. پاسخ های همزمان نیازی به احراز هویت ندارند.

برای پاسخگویی در زمان واقعی، برنامه چت باید یک شیء Message برگرداند. برای پاسخ دادن با یک پیام در فضای خالی، شی Message می‌تواند شامل text ، cardsV2 و اشیاء accessoryWidgets باشد. برای استفاده با انواع دیگر پاسخ ها، راهنماهای زیر را ببینید:

با پیام پاسخ دهید

در این مثال، برنامه چت شما هر زمان که به فضایی اضافه شود پیام متنی ایجاد کرده و ارسال می کند. برای آشنایی با بهترین روش‌ها برای ورود کاربران به برنامه، به معرفی کاربران به برنامه گپ خود مراجعه کنید.

برای ارسال پیام نوشتاری هنگامی که کاربر برنامه چت شما را به یک فضا اضافه می‌کند، برنامه چت شما به یک رویداد تعاملی ADDED_TO_SPACE پاسخ می‌دهد. برای پاسخ دادن به رویدادهای تعامل ADDED_TO_SPACE با یک پیام متنی، از کد زیر استفاده کنید:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

اسکریپت برنامه ها

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
function onAddToSpace(event) {

  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

نمونه کد پیام متنی زیر را برمی گرداند:

نمونه پیام ورود.

به صورت ناهمزمان پاسخ دهید

گاهی اوقات برنامه‌های چت باید پس از 30 ثانیه به یک رویداد تعاملی پاسخ دهند یا کارهایی را خارج از فضایی که رویداد تعاملی ایجاد شده است انجام دهند. به عنوان مثال، یک برنامه چت ممکن است نیاز داشته باشد پس از انجام یک کار طولانی مدت به کاربر پاسخ دهد. در این حالت، برنامه‌های چت می‌توانند با تماس با Google Chat API به صورت ناهمزمان پاسخ دهند.

برای ایجاد پیام با استفاده از Chat API، به ایجاد پیام مراجعه کنید. برای راهنمایی در مورد استفاده از روش‌های دیگر Chat API، به نمای کلی Chat API مراجعه کنید.

،

این صفحه توضیح می‌دهد که چگونه برنامه Google Chat شما می‌تواند تعاملات کاربر را دریافت کند و به آن پاسخ دهد، که به عنوان رویدادهای تعامل برنامه چت Google نیز شناخته می‌شود.

در این صفحه نحوه انجام کارهای زیر توضیح داده شده است:

  • برنامه چت خود را برای دریافت رویدادهای تعامل پیکربندی کنید.
  • رویداد تعامل را در زیرساخت خود پردازش کنید.
  • در صورت لزوم، به رویدادهای تعامل پاسخ دهید.

یک برنامه چت تعاملی به عنوان افزونه Google Workspace بسازید

برای ایجاد یک برنامه چت که با کاربران چت در تعامل است، می‌توانید یک افزونه Google Workspace بسازید که گپ را گسترش دهد. برنامه Chat به جای دریافت رویدادهای تعاملی از Chat API، اشیاء رویداد افزودنی را دریافت کرده و به آنها پاسخ می دهد. برای کسب اطلاعات بیشتر، به Extend Google Chat در اسناد افزودنی Google Workspace مراجعه کنید.

پیش نیازها

یک برنامه Google Chat که برای ویژگی‌های تعاملی فعال است. برای ایجاد یک برنامه چت تعاملی، یکی از شروع سریع زیر را بر اساس معماری برنامه ای که می خواهید استفاده کنید، انجام دهید:

انواع رویدادهای تعاملی

رویداد تعامل برنامه گپ Google نشان‌دهنده هر اقدامی است که کاربر برای فراخوانی یا تعامل با یک برنامه Chat انجام می‌دهد، مانند @ نام بردن از یک برنامه Chat یا افزودن آن به یک فضا.

هنگامی که کاربران با یک برنامه گپ تعامل می کنند، Google Chat یک رویداد تعاملی را به برنامه Chat ارسال می کند که به عنوان یک نوع Event در Chat API نشان داده می شود. برنامه چت می تواند از رویداد برای پردازش تعامل استفاده کند و به صورت اختیاری، با یک پیام پاسخ دهد.

برای هر نوع تعامل کاربر، Google Chat نوع متفاوتی از رویداد تعاملی را ارسال می‌کند که به برنامه چت شما کمک می‌کند تا هر نوع رویداد را مطابق با آن مدیریت کند. نوع رویداد تعامل با استفاده از شی eventType نشان داده می شود.

به عنوان مثال، Google Chat از نوع رویداد ADDED_TO_SPACE برای هر تعاملی استفاده می‌کند که در آن کاربر برنامه Chat را به یک فضا اضافه می‌کند، به طوری که برنامه Chat می‌تواند بلافاصله با یک پیام خوش‌آمدگویی در فضا پاسخ دهد .

برنامه چت پیام خوشامدگویی را ارسال می کند.
شکل 1 : هنگامی که یک کاربر یک برنامه چت را به یک فضا اضافه می کند، برنامه Chat یک رویداد تعاملی ADDED_TO_SPACE را دریافت می کند که برنامه Chat برای ارسال پیام خوشامدگویی در فضا مدیریت می کند.

جدول زیر تعاملات متداول کاربر، نوع رویداد تعاملی که برنامه‌های گپ دریافت می‌کنند و نحوه پاسخگویی معمولاً برنامه‌های چت را نشان می‌دهد:

تعامل کاربر eventType پاسخ معمولی از یک برنامه چت
یک کاربر یک برنامه چت را با ذکر @ یا با استفاده از دستور اسلش فراخوانی می کند. MESSAGE برنامه چت بر اساس محتوای پیام پاسخ می دهد. به عنوان مثال، یک برنامه Chat با پیامی به دستور /about پاسخ می دهد که وظایفی را که برنامه Chat می تواند انجام دهد را توضیح می دهد.
کاربر یک برنامه چت را به یک فضا اضافه می کند. ADDED_TO_SPACE برنامه چت پیامی ارسال می کند که توضیح می دهد چه کاری انجام می دهد و چگونه کاربران در فضا می توانند با آن تعامل داشته باشند.
کاربر یک برنامه چت را از یک فضا حذف می کند. REMOVED_FROM_SPACE برنامه Chat هر گونه اعلان های ورودی را که برای فضا پیکربندی شده اند (مانند حذف یک هوک ) حذف می کند و حافظه داخلی را پاک می کند.
کاربر روی یک کارت از پیام، گفتگو یا صفحه اصلی برنامه چت، روی یک دکمه کلیک می کند. CARD_CLICKED برنامه چت یا هر داده ای را که کاربر ارسال کرده است پردازش و ذخیره می کند یا کارت دیگری را برمی گرداند.
یک کاربر صفحه اصلی برنامه چت را با کلیک کردن بر روی برگه صفحه اصلی در یک پیام 1:1 باز می کند. APP_HOME برنامه چت یک کارت استاتیک یا تعاملی را از صفحه اصلی برمی‌گرداند.
یک کاربر فرمی را از صفحه اصلی برنامه چت ارسال می کند. SUBMIT_FORM برنامه چت یا هر داده ای را که کاربر ارسال کرده است پردازش و ذخیره می کند یا کارت دیگری را برمی گرداند.

برای مشاهده همه رویدادهای تعامل پشتیبانی شده، به مستندات مرجع EventType مراجعه کنید.

رویدادهای تعامل از دیالوگ ها

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

  • isDialogEvent روی true تنظیم شده است.
  • DialogEventType روشن می کند که آیا تعامل باعث باز شدن یک گفتگو می شود، اطلاعات را از یک گفتگو ارسال می کند یا یک گفتگو را می بندد.

جدول زیر تعاملات رایج با دیالوگ‌ها، انواع رویداد گفتگوی مربوطه، و توضیحی در مورد نحوه پاسخگویی معمولاً برنامه‌های چت را نشان می‌دهد:

تعامل کاربر با دیالوگ نوع رویداد گفتگو پاسخ معمولی
یک کاربر یک درخواست گفتگو را راه اندازی می کند. به عنوان مثال، آنها از یک دستور اسلش استفاده می کنند یا روی دکمه ای از یک پیام کلیک می کنند. REQUEST_DIALOG برنامه چت گفتگو را باز می کند.
کاربر با کلیک بر روی یک دکمه اطلاعات را در کادر گفتگو ارسال می کند. SUBMIT_DIALOG برنامه چت یا به گفتگوی دیگری می رود یا برای تکمیل تعامل، گفتگو را می بندد.
یک کاربر قبل از ارسال اطلاعات از گفتگو خارج می شود یا می بندد. CANCEL_DIALOG در صورت تمایل، برنامه چت می‌تواند با یک پیام جدید پاسخ دهد، یا پیام یا کارتی را که کاربر گفتگو را از آن باز کرده است، به‌روزرسانی کند.

برای اطلاعات بیشتر، باز کردن گفتگوهای تعاملی را ببینید.

رویدادهای تعامل برنامه چت را دریافت کنید

این بخش نحوه دریافت و پردازش رویدادهای تعاملی را برای برنامه چت شما شرح می دهد.

برنامه چت خود را برای دریافت رویدادهای تعامل پیکربندی کنید

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

برای هر یک از ویژگی‌های تعاملی که می‌خواهید بسازید، باید پیکربندی خود را در Chat API به‌روزرسانی کنید تا Google Chat بتواند رویدادهای تعاملی مرتبط را به برنامه Chat شما ارسال کند:

  1. در کنسول Google Cloud، به صفحه Chat API بروید و روی صفحه پیکربندی کلیک کنید:

    به صفحه پیکربندی Chat API بروید

  2. در بخش ویژگی‌های تعاملی ، تنظیمات را مرور کنید و براساس ویژگی‌هایی که می‌خواهید بسازید، به‌روزرسانی کنید:

    میدان توضیحات
    کارکرد مورد نیاز. مجموعه‌ای از فیلدها که نحوه تعامل برنامه چت با کاربران را تعیین می‌کند:
    • دریافت پیام‌های ۱:۱ : کاربران می‌توانند برنامه چت را مستقیماً در چت Google پیدا کنند و پیام دهند.
    • پیوستن به فضاها و مکالمات گروهی : کاربران می توانند برنامه چت را به فضاها و مکالمات گروهی اضافه کنند.
    تنظیمات اتصال مورد نیاز. نقطه پایانی برای برنامه Chat که یکی از موارد زیر است:
    • URL نقطه پایانی HTTP : یک نقطه پایانی HTTPS که میزبان اجرای برنامه چت است.
    • Apps Script : شناسه استقرار برای پروژه Apps Script که یک برنامه Chat را پیاده سازی می کند.
    • نام موضوع Cloud Pub/Sub : یک موضوع Pub/Sub که برنامه Chat به عنوان نقطه پایانی در آن مشترک شده است.
    • Dialogflow : برنامه Chat را با یکپارچه سازی Dialogflow ثبت می کند. برای اطلاعات بیشتر، به ساخت برنامه گفتگوی Google Chat که زبان طبیعی را می‌فهمد، مراجعه کنید.
    دستورات اسلش اختیاری. دستوراتی که می توانند برای کاربران در چت Google ظاهر شوند. به کاربران اجازه می‌دهد تا عملکردهای اصلی برنامه چت شما را در Google Chat ببینند و اقدام خاصی را که می‌خواهند با آن تعامل داشته باشند انتخاب کنند. برای اطلاعات بیشتر، پاسخ به دستورات اسلش را به‌عنوان برنامه چت ببینید.
    پیش نمایش پیوندها اختیاری. الگوهای نشانی وب که برنامه چت می شناسد و محتوای اضافی را برای زمانی که کاربران پیوند می فرستند ارائه می کند. برای اطلاعات بیشتر، پیش‌نمایش پیوندها را ببینید.
    دید اختیاری. حداکثر پنج نفر یا یک یا چند گروه Google که می‌توانند برنامه چت شما را مشاهده و نصب کنند. از این فیلد برای آزمایش برنامه چت یا اشتراک گذاری برنامه چت با تیم خود استفاده کنید. برای اطلاعات بیشتر، تست ویژگی‌های تعاملی را ببینید.
  3. روی ذخیره کلیک کنید. وقتی پیکربندی برنامه گپ را ذخیره می‌کنید، برنامه گپ شما برای کاربران مشخص‌شده در سازمان Google Workspace شما در دسترس است.

برنامه چت شما اکنون برای دریافت رویدادهای تعاملی از گپ Google پیکربندی شده است.

مدیریت تماس های مجدد HTTP برای سرویس شما

اگر درخواست HTTPS به سرویس شما با شکست مواجه شود (مانند مهلت زمانی، خرابی موقت شبکه، یا کد وضعیت غیر 2xx HTTPS)، ممکن است گپ Google چند بار در عرض چند دقیقه تحویل را دوباره امتحان کند (اما این تضمین نمی‌شود). در نتیجه، یک برنامه چت ممکن است در شرایط خاص چند بار پیام مشابهی را دریافت کند. اگر درخواست با موفقیت تکمیل شود اما یک بار پیام نامعتبر برگرداند، Google Chat درخواست را دوباره امتحان نمی‌کند.

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

این بخش توضیح می‌دهد که چگونه برنامه‌های چت Google می‌توانند رویدادهای تعامل را پردازش کرده و به آن پاسخ دهند.

پس از اینکه برنامه چت شما یک رویداد تعاملی از چت Google دریافت کرد، می‌تواند به طرق مختلف پاسخ دهد. در بسیاری از موارد، برنامه های چت تعاملی با یک پیام به کاربر پاسخ می دهند. برنامه Google Chat همچنین می‌تواند برخی از اطلاعات را از منبع داده جستجو کند، اطلاعات رویداد تعامل یا تقریباً هر چیز دیگری را ضبط کند. این رفتار پردازشی اساساً همان چیزی است که برنامه Google Chat را تعریف می کند.

برای پاسخگویی همزمان، یک برنامه چت باید ظرف 30 ثانیه پاسخ دهد و پاسخ باید در فضایی که تعامل رخ داده است پست شود. در غیر این صورت، برنامه چت می تواند به صورت ناهمزمان پاسخ دهد.

برای هر رویداد تعاملی، برنامه‌های گپ یک بدنه درخواست دریافت می‌کنند که بار JSON است که رویداد را نشان می‌دهد. می توانید از اطلاعات برای پردازش پاسخ استفاده کنید. برای نمونه‌هایی از بارهای رویداد، به انواع رویدادهای تعامل برنامه گپ مراجعه کنید.

نمودار زیر نشان می‌دهد که برنامه Google Chat معمولاً چگونه انواع مختلف رویدادهای تعاملی را پردازش می‌کند یا به آنها پاسخ می‌دهد:

معماری نحوه پردازش برنامه‌های چت Google وقایع تعامل.

در زمان واقعی پاسخ دهید

رویدادهای تعاملی به برنامه‌های چت اجازه می‌دهند به صورت هم‌زمان یا هم‌زمان پاسخ دهند. پاسخ های همزمان نیازی به احراز هویت ندارند.

برای پاسخگویی در زمان واقعی، برنامه چت باید یک شیء Message برگرداند. برای پاسخ دادن با یک پیام در فضای خالی، شی Message می‌تواند شامل text ، cardsV2 و اشیاء accessoryWidgets باشد. برای استفاده با انواع دیگر پاسخ ها، راهنماهای زیر را ببینید:

با پیام پاسخ دهید

در این مثال، برنامه چت شما هر زمان که به فضایی اضافه شود پیام متنی ایجاد کرده و ارسال می کند. برای آشنایی با بهترین روش‌ها برای ورود کاربران به برنامه، به معرفی کاربران به برنامه چت خود مراجعه کنید.

برای ارسال پیام نوشتاری هنگامی که کاربر برنامه چت شما را به یک فضا اضافه می‌کند، برنامه چت شما به یک رویداد تعاملی ADDED_TO_SPACE پاسخ می‌دهد. برای پاسخ دادن به رویدادهای تعامل ADDED_TO_SPACE با یک پیام متنی، از کد زیر استفاده کنید:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

اسکریپت برنامه ها

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
function onAddToSpace(event) {

  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

نمونه کد پیام متنی زیر را برمی گرداند:

نمونه پیام ورود.

به صورت ناهمزمان پاسخ دهید

گاهی اوقات برنامه‌های چت باید پس از 30 ثانیه به یک رویداد تعاملی پاسخ دهند یا کارهایی را خارج از فضایی که رویداد تعاملی ایجاد شده است انجام دهند. به عنوان مثال ، یک برنامه گپ ممکن است پس از انجام یک کار طولانی مدت نیاز به پاسخ به کاربر داشته باشد. در این حالت ، برنامه های گپ می توانند با تماس با Google Chat API به طور همزمان پاسخ دهند.

برای ایجاد پیام با استفاده از API چت ، به ایجاد یک پیام مراجعه کنید. برای راهنماهای استفاده از روشهای اضافی API چت ، به نمای کلی API چت مراجعه کنید.

،

این صفحه توضیح می دهد که چگونه برنامه Google Chat شما می تواند تعامل کاربر را دریافت و پاسخ دهد ، همچنین به عنوان رویدادهای تعامل برنامه Google CHAT شناخته می شود.

در این صفحه نحوه انجام موارد زیر توضیح داده شده است:

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

یک برنامه چت تعاملی به عنوان یک افزودنی فضای کاری Google ایجاد کنید

برای ساختن یک برنامه چت که با کاربران چت در تعامل است ، می توانید یک افزودنی فضای کاری Google را ایجاد کنید که گپ را گسترش می دهد. به جای دریافت رویدادهای تعامل از API چت ، برنامه چت اشیاء رویداد افزودنی را دریافت و پاسخ می دهد. برای کسب اطلاعات بیشتر ، به Extend Google Chat در مستندات افزودنی فضای کاری Google مراجعه کنید.

پیش نیازها

یک برنامه گپ Google که برای ویژگی های تعاملی فعال شده است. برای ایجاد یک برنامه چت تعاملی ، یکی از queststarts های زیر را بر اساس معماری برنامه که می خواهید استفاده کنید ، تکمیل کنید:

انواع وقایع تعامل

یک رویداد تعامل برنامه Google CHAT نشان دهنده هر عملی است که کاربر برای فراخوانی یا تعامل با یک برنامه چت ، مانند Mentioning یک برنامه چت یا اضافه کردن آن به یک فضا انجام می دهد.

هنگامی که کاربران با یک برنامه چت در تعامل هستند ، Google Chat برنامه چت را به یک رویداد تعامل ارسال می کند ، که به عنوان یک نوع Event در API چت ارائه می شود. برنامه گپ می تواند از این رویداد برای پردازش تعامل استفاده کند و به صورت اختیاری با یک پیام پاسخ دهد.

برای هر نوع تعامل کاربر ، Google Chat نوع دیگری از رویداد تعامل را ارسال می کند که به برنامه چت شما کمک می کند تا هر نوع رویداد را بر این اساس کنترل کند. نوع رویداد تعامل با استفاده از شی eventType نشان داده شده است.

به عنوان مثال ، Google Chat از نوع رویداد ADDED_TO_SPACE برای هر تعامل استفاده می کند که کاربر برنامه گپ را به یک فضا اضافه می کند ، تا برنامه گپ بتواند بلافاصله با یک پیام خوش آمدید در فضا پاسخ دهد .

برنامه چت پیام خوش آمدید ارسال می کند.
شکل 1 : هنگامی که کاربر یک برنامه چت را به یک فضا اضافه می کند ، برنامه گپ یک رویداد تعامل ADDED_TO_SPACE را دریافت می کند که برنامه چت برای ارسال پیام خوش آمدید در فضا استفاده می کند.

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

تعامل کاربر eventType پاسخ معمولی از یک برنامه چت
یک کاربر با استفاده از آن با استفاده از یک دستور slash ، یک برنامه گپ را فراخوانی می کند. MESSAGE برنامه گپ بر اساس محتوای پیام پاسخ می دهد. به عنوان مثال ، یک برنامه چت با پیامی که وظایفی را که برنامه گپ می تواند انجام دهد ، به دستور /about پاسخ می دهد.
یک کاربر یک برنامه گپ را به یک فضا اضافه می کند. ADDED_TO_SPACE برنامه چت یک پیام پردازنده را ارسال می کند که توضیح می دهد چه کاری انجام می دهد و چگونه کاربران در فضا می توانند با آن ارتباط برقرار کنند.
کاربر یک برنامه گپ را از یک فضا حذف می کند. REMOVED_FROM_SPACE برنامه چت هرگونه اعلان های ورودی را که برای فضا تنظیم شده است حذف می کند (مانند حذف یک وب وب ) و هرگونه ذخیره داخلی را پاک می کند.
کاربر از طریق پیام برنامه چت ، گفتگو یا صفحه اصلی روی یک دکمه روی کارت کلیک می کند. CARD_CLICKED برنامه گپ یا داده هایی را که کاربر ارسال کرده است پردازش و ذخیره می کند ، یا کارت دیگری را برمی گرداند.
کاربر با کلیک روی برگه خانه در یک پیام 1: 1 ، صفحه اصلی برنامه گپ را باز می کند. APP_HOME برنامه گپ یک کارت استاتیک یا تعاملی را از صفحه اصلی برمی گرداند.
کاربر فرم را از صفحه اصلی برنامه چت ارسال می کند. SUBMIT_FORM برنامه گپ یا داده هایی را که کاربر ارسال کرده است پردازش و ذخیره می کند ، یا کارت دیگری را برمی گرداند.

برای دیدن همه رویدادهای تعامل پشتیبانی شده ، به مستندات مرجع EventType مراجعه کنید.

وقایع تعامل از دیالوگ ها

اگر برنامه چت شما دیالوگ ها را باز می کند ، رویداد تعامل حاوی اطلاعات اضافی زیر است که می توانید برای پردازش یک پاسخ استفاده کنید:

  • isDialogEvent true است.
  • DialogEventType توضیح می دهد که آیا تعامل باعث ایجاد گفتگو برای باز می شود ، اطلاعات را از یک گفتگو ارسال می کند یا یک گفتگو را بسته می کند.

جدول زیر تعامل مشترک با دیالوگ ها ، انواع رویداد گفتگو مربوطه و توضیحی در مورد چگونگی پاسخ برنامه های گپ به طور معمول نشان می دهد:

تعامل کاربر با یک گفتگو نوع رویداد گفتگو پاسخ معمولی
کاربر درخواست گفتگو را ایجاد می کند. به عنوان مثال ، آنها از یک دستور SLASH استفاده می کنند یا از یک دکمه کلیک می کنند. REQUEST_DIALOG برنامه گپ گفتگو را باز می کند.
کاربر با کلیک روی یک دکمه ، اطلاعات را در گفتگو ارسال می کند. SUBMIT_DIALOG برنامه گپ یا به گفتگوی دیگری حرکت می کند یا گفتگو را برای تکمیل تعامل بسته می کند.
کاربر قبل از ارسال اطلاعات ، گفتگو را خروجی یا بسته می کند. CANCEL_DIALOG به صورت اختیاری ، برنامه گپ می تواند با یک پیام جدید پاسخ دهد ، یا پیام یا کارت را که کاربر از آن گفتگو را باز کرده است به روز کنید.

برای اطلاعات بیشتر ، به گفتگوی های تعاملی باز مراجعه کنید.

دریافت رویدادهای تعامل برنامه چت

در این بخش نحوه دریافت و پردازش رویدادهای تعامل برای برنامه گپ شما توضیح داده شده است.

برنامه گپ خود را برای دریافت رویدادهای تعامل پیکربندی کنید

همه برنامه های گپ تعاملی نیستند. به عنوان مثال ، وب های ورودی فقط می توانند پیام های خروجی را ارسال کنند و نمی توانند به کاربران پاسخ دهند. اگر در حال ایجاد یک برنامه چت تعاملی هستید ، باید یک نقطه پایانی را انتخاب کنید که به برنامه گپ شما اجازه می دهد تا به رویدادهای تعامل پاسخ ، پردازش و پاسخ دهد. برای کسب اطلاعات بیشتر در مورد طراحی برنامه چت خود ، به معماری های اجرای برنامه های چت مراجعه کنید.

برای هر یک از ویژگی های تعاملی که می خواهید بسازید ، باید پیکربندی خود را در API چت به روز کنید تا Google Chat بتواند رویدادهای تعامل مرتبط را به برنامه گپ شما ارسال کند:

  1. در کنسول Google Cloud ، به صفحه API چت بروید و روی صفحه پیکربندی کلیک کنید:

    به صفحه پیکربندی API چت بروید

  2. در زیر ویژگی های تعاملی ، تنظیمات و به روزرسانی را بر اساس ویژگی هایی که می خواهید بسازید مرور کنید:

    میدان توضیحات
    کارکرد مورد نیاز. مجموعه ای از زمینه ها که تعیین می کند چگونه برنامه چت می تواند با کاربران تعامل داشته باشد:
    • دریافت پیام 1: 1 : کاربران می توانند برنامه گپ را مستقیماً در Google Chat پیدا و پیام دهند.
    • به فضاها و مکالمات گروهی بپیوندید : کاربران می توانند برنامه گپ را به فضاها و مکالمات گروهی اضافه کنند.
    تنظیمات اتصال مورد نیاز. نقطه پایانی برنامه چت ، که یکی از موارد زیر است:
    • URL HTTP Endpoint URL : نقطه پایانی HTTPS که میزبان اجرای برنامه گپ است.
    • اسکریپت برنامه ها : شناسه استقرار برای یک پروژه اسکریپت برنامه هایی که یک برنامه چت را پیاده سازی می کند.
    • Cloud Pub/Sub Name : یک میخانه/زیر موضوع که برنامه گپ به عنوان یک نقطه پایانی مشترک است.
    • DIALOGFLOW : برنامه گپ را با ادغام دیالوگ Flow ثبت می کند. برای اطلاعات بیشتر ، به ساخت برنامه Google Coalogflow Google که زبان طبیعی را درک می کند ، مراجعه کنید.
    دستورات اسلش اختیاری. دستوراتی که می توانند در Google Chat برای کاربران ظاهر شوند. به کاربران امکان می دهد اقدامات اصلی برنامه گپ شما را در Google Chat مشاهده کنند و یک عمل خاص را که می خواهند با آن تعامل داشته باشند انتخاب کنند. برای اطلاعات بیشتر ، به دستورات Slash به عنوان یک برنامه چت پاسخ دهید .
    پیش نمایش پیوندها اختیاری. الگوهای URL که برنامه گپ در هنگام ارسال پیوندها ، محتوای اضافی را برای آن تشخیص داده و ارائه می دهد. برای اطلاعات بیشتر ، به پیوندهای پیش نمایش مراجعه کنید.
    دید اختیاری. حداکثر پنج فرد یا یک یا چند گروه Google که می توانند برنامه گپ شما را مشاهده و نصب کنند. از این قسمت برای آزمایش برنامه چت خود استفاده کنید یا برنامه چت را با تیم خود به اشتراک بگذارید. برای اطلاعات بیشتر ، به ویژگی های تعاملی آزمون مراجعه کنید.
  3. روی ذخیره کلیک کنید. هنگامی که پیکربندی برنامه چت را ذخیره می کنید ، برنامه گپ شما در سازمان فضای کاری Google شما در دسترس کاربران مشخص شده است.

اکنون برنامه چت شما برای دریافت رویدادهای تعامل از Google Chat تنظیم شده است.

مجدداً تماس با HTTP را به سرویس خود انجام دهید

اگر درخواست HTTPS به سرویس شما انجام نشود (مانند زمان وقوع ، خرابی موقت شبکه یا کد وضعیت HTTPS غیر 2xx) ، Google Gugh ممکن است طی چند دقیقه چند بار تحویل را دوباره امتحان کند (اما این تضمین نشده است). در نتیجه ، یک برنامه گپ ممکن است در شرایط خاص چند بار همان پیام را دریافت کند. اگر درخواست با موفقیت انجام شود اما بار پیام نامعتبر را بازگرداند ، Google Chat درخواست را دوباره امتحان نمی کند.

فرآیند یا پاسخ به وقایع تعامل

در این بخش توضیح می دهد که چگونه برنامه های گپ Google می توانند به وقایع تعامل پردازش و پاسخ دهند.

بعد از اینکه برنامه چت شما از Google Chat یک رویداد تعامل دریافت کرد ، آنها می توانند از بسیاری جهات پاسخ دهند. در بسیاری از موارد ، برنامه های چت تعاملی با پیام به کاربر پاسخ می دهند. برنامه Google CHAT همچنین می تواند برخی از اطلاعات را از یک منبع داده جستجو کند ، اطلاعات رویداد تعامل یا هر چیز دیگری را ضبط کند. این رفتار پردازش در واقع همان چیزی است که برنامه Google Chat را تعریف می کند.

برای پاسخ دادن همزمان ، یک برنامه گپ باید در مدت 30 ثانیه پاسخ دهد و پاسخ باید در فضایی که تعامل در آن رخ داده است ارسال شود. در غیر این صورت ، برنامه گپ می تواند به صورت غیر همزمان پاسخ دهد.

برای هر رویداد تعامل ، برنامه های گپ یک بدنه درخواست دریافت می کنند ، که بار JSON است که نمایانگر این رویداد است. می توانید از اطلاعات برای پردازش پاسخ استفاده کنید. برای نمونه هایی از بارهای رویداد ، به انواع رویدادهای تعامل برنامه چت مراجعه کنید.

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

معماری نحوه برنامه های گپ Google رویدادهای تعامل را پردازش می کند.

در زمان واقعی پاسخ دهید

رویدادهای تعامل اجازه می دهد برنامه های گپ در زمان واقعی یا همزمان پاسخ دهند. پاسخ های همزمان نیاز به احراز هویت ندارند.

برای پاسخ در زمان واقعی ، برنامه گپ باید یک شی Message برگرداند. برای پاسخ به پیام در فضا ، شیء Message می تواند شامل text ، cardsV2 و اشیاء accessoryWidgets باشد. برای استفاده با انواع دیگر پاسخ ها ، به راهنماهای زیر مراجعه کنید:

با یک پیام پاسخ دهید

در این مثال ، برنامه گپ شما هر زمان که به یک فضا اضافه شود ، یک پیام متنی ایجاد و ارسال می کند. برای کسب اطلاعات در مورد بهترین شیوه های کاربران سوارکاری ، به کاربران معرفی شده به برنامه گپ خود مراجعه کنید.

برای ارسال پیام متنی هنگامی که کاربر برنامه چت شما را به یک فضا اضافه می کند ، برنامه گپ شما به یک رویداد تعامل ADDED_TO_SPACE پاسخ می دهد. برای پاسخ به رویدادهای تعامل ADDED_TO_SPACE با یک پیام متنی ، از کد زیر استفاده کنید:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

اسکریپت برنامه ها

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
function onAddToSpace(event) {

  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

نمونه کد پیام متنی زیر را برمی گرداند:

مثال پیام پردازنده.

به صورت ناهمزمان پاسخ دهید

بعضی اوقات برنامه های گپ باید بعد از 30 ثانیه به یک رویداد تعامل پاسخ دهند یا در خارج از فضا که رویداد تعامل ایجاد شده است ، وظایف خود را انجام دهند. به عنوان مثال ، یک برنامه گپ ممکن است پس از انجام یک کار طولانی مدت نیاز به پاسخ به کاربر داشته باشد. در این حالت ، برنامه های گپ می توانند با تماس با Google Chat API به طور همزمان پاسخ دهند.

برای ایجاد پیام با استفاده از API چت ، به ایجاد یک پیام مراجعه کنید. برای راهنماهای استفاده از روشهای اضافی API چت ، به نمای کلی API چت مراجعه کنید.