این صفحه توضیح میدهد که چگونه برنامه Google Chat میتواند کادرهای گفتگویی را برای نمایش میاناهای کاربر (UI) و پاسخ دادن به کاربران باز کند.
کادرهای گفتگو رابطهای پنجرهای و کارتمحوری هستند که از پیام یا فضای Chat باز میشوند. محتوای کادر گفتگو فقط برای کاربری که آن را باز کرده است رؤیتپذیر است.
برنامههای Chat میتوانند از چارگوشهای گفتگو برای درخواست و جمعآوری اطلاعات از کاربران Chat، ازجمله فرمهای چندمرحلهای، استفاده کنند. برای جزئیات بیشتر درباره ساختن ورودیهای فرم، جمعآوری و پردازش اطلاعات از کاربران را ببینید.
پیشنیازها
HTTP
برنامه Google Chat که تعاملات کاربر را دریافت و به آنها پاسخ میدهد. برای ساختن آن، شروع سریع HTTP را تکمیل کنید.
Apps Script
برنامه Google Chat که تعاملات کاربر را دریافت و به آنها پاسخ میدهد. برای ساختن یکی از آنها، راهاندازی سریع Apps Script را تکمیل کنید.
باز کردن کادر گفتگو
این بخش توضیح میدهد که با انجام دادن مراحل زیر چگونه پاسخ دهید و کادر گفتگویی راهاندازی کنید:
- درخواست کادر گفتگو را از تعامل کاربر راهاندازی کنید.
- با برگرداندن و باز کردن کادر گفتگو، درخواست را مدیریت کنید.
- پساز اینکه کاربران اطلاعات را ارسال کردند، ارسال را با بستن کادر گفتگو یا برگرداندن کادر گفتگوی دیگری پردازش کنید.
راهاندازی درخواست کادر گفتگو
برنامه Chat فقط میتواند کادرهای گفتگویی را برای پاسخ دادن به تعامل کاربر باز کند، مثل فرمان یا کلیک دکمه از پیامی در کارت.
برای پاسخ دادن به کاربران با کادر گفتگو، برنامه Chat باید تعاملی بسازد که درخواست کادر گفتگو را راهاندازی کند، مثل موارد زیر:
- به فرمان پاسخ دهید. برای راهاندازی درخواست از فرمان، هنگام پیکربندی فرمان، باید چارگوش باز کردن کادر گفتگو را علامت بزنید.
- در
پیام،
یا بهعنوان بخشی از کارت یا در پایین پیام، به کلیک دکمه پاسخ دهید. برای راهاندازی درخواست از دکمهای در پیام، کنش
onClickدکمه را با تنظیمinteractionآن رویOPEN_DIALOGپیکربندی میکنید. - پاسخ دادن به کلیک دکمه در صفحه اصلی برنامه Chat. برای آشنایی با باز کردن کادرهای گفتگو از صفحههای اصلی، به ساختن صفحه اصلی برای برنامه Google Chat مراجعه کنید.
/addContact اسلش استفاده کنند. این پیام همچنین شامل دکمهای است که کاربران میتوانند برای راهاندازی فرمان روی آن کلیک کنند.
نمونه کد زیر نحوه راهاندازی درخواست چارگوش گفتگو از دکمهای در
پیام کارت را نشان میدهد. برای باز کردن کادر گفتگو، فیلد
onClick.action.interaction
دکمه را روی OPEN_DIALOG تنظیم کنید:
Node.js
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Python
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
جاوا
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
باز کردن کادر گفتگوی اولیه
وقتی کاربری درخواست گفتگویی را راهاندازی میکند، برنامه Chat شما
شیء رویدادی را با
بار محتوایی که شیء dialogEventType را بهعنوان REQUEST_DIALOG مشخص میکند دریافت میکند.
برای باز کردن کادر گفتگو، برنامه Chat شما میتواند با برگرداندن
شیء
RenderActions
به درخواست پاسخ دهد و بااستفاده از پیمایش pushCard کارت را نمایش دهد. کارت باید حاوی
عناصر واسط کاربر (UI)، ازجمله یک یا چند
sections[]
ابزاره باشد. برای جمعآوری اطلاعات از کاربران، میتوانید
ابزارههای ورودی فرم و ابزاره دکمه را مشخص کنید. برای کسب اطلاعات بیشتر درباره طراحی ورودیهای فرم، به
جمعآوری و پردازش اطلاعات از کاربران مراجعه کنید.
نمونه کد زیر نشان میدهد که چگونه برنامه Chat پاسخی را برمیگرداند که کادر گفتگویی را باز میکند:
Node.js
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Python
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
جاوا
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
مدیریت ارسال کادر گفتگو
وقتی کاربران روی دکمهای کلیک میکنند که کادر گفتگویی را ارسال میکند، برنامه Chat شما شیء رویدادی با
buttonClickedPayload
شیء دریافت میکند. در پایهبار، dialogEventType روی SUBMIT_DIALOG تنظیم شده است. برای
درک نحوه جمعآوری و پردازش اطلاعات در این چارگوش،
جمعآوری و پردازش اطلاعات کاربران Google Chat را ببینید.
برنامه Chat شما باید با انجام یکی از موارد زیر به شیء رویداد پاسخ دهد:
- برای پر کردن کارت یا فرم دیگری، کادر گفتگوی دیگری برگردانید.
- پساز اعتبارسنجی دادههایی که کاربر ارسال کرده است، کادر گفتگو را ببندید و درصورت تمایل، پیام تأییدی ارسال کنید.
اختیاری: کادر گفتگوی دیگری را برگردانید
پساز اینکه کاربران گفتگوی اولیه را ارسال کردند، برنامههای Chat میتوانند یک یا چند گفتگوی اضافی را برگردانند تا به کاربران کمک کنند اطلاعات را قبلاز ارسال کردن مرور کنند، فرمهای چندمرحلهای را تکمیل کنند، یا محتوای فرم را بهصورت پویا تکمیل کنند.
برای پردازش دادههایی که کاربران وارد میکنند، برنامه Chat دادهها را در شیء رویداد
commonEventObject.formInputs
مدیریت میکند. برای کسب اطلاعات بیشتر درباره بازیابی مقادیر از ابزارکهای ورودی، به
جمعآوری و پردازش اطلاعات از کاربران مراجعه کنید.
برای پیگیری دادههایی که کاربران از کادر گفتگوی اولیه وارد میکنند، باید پارامترهایی را به دکمهای که کادر گفتگوی بعدی را باز میکند اضافه کنید. برای جزئیات، به انتقال دادهها به کارت دیگر مراجعه کنید.
در این مثال، برنامه Chat کادر گفتگوی اولیهای را باز میکند که قبلاز ارسال به کادر گفتگوی دومی برای تأیید منجر میشود:
Node.js
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Python
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
جاوا
FUNCTION_URL را با نقطه پایانی HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
بستن کادر گفتگو
وقتی کاربران روی دکمه ارسال در چارگوش گفتگویی کلیک میکنند، برنامه Chat شما کنش مرتبط را اجرا میکند و شیء رویداد را با buttonClickedPayload تنظیمشده روی موارد زیر ارائه میکند:
isDialogEventtrueاست.dialogEventTypeSUBMIT_DIALOGاست.
برنامه Chat باید
RenderActions
شیئی با
endNavigation
تنظیمشده روی CLOSE_DIALOG (endNavigation: "CLOSE_DIALOG") برگرداند.
اختیاری: نمایش اعلان موقت
وقتی کادر گفتگو را میبندید، میتوانید یک اعلان نوشتاری موقت نیز به کاربری که با برنامه تعامل دارد نمایش دهید.
برای نمایش اعلان،
RenderActions
شیء را با فیلد notification تنظیمشده برگردانید.
مثال زیر کادر گفتگو را با اعلان نوشتاری میبندد:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
برای جزئیات مربوط به انتقال پارامترها بین چارگوشهای گفتگو، به انتقال داده به کارت دیگر مراجعه کنید.
اختیاری: ارسال پیام تأیید Chat
وقتی کادر گفتگو را میبندید، میتوانید پیام Chat جدیدی ارسال کنید یا پیام موجود را بهروز کنید.
برای ارسال پیام جدید،
DataActions
شیئی را با فیلد
CreateMessageAction که با پیام جدید تنظیم شده است برگردانید.
مثال زیر با ارسال پیام جدید کادر گفتگو را میبندد:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
برای بهروز کردن پیام پساز ارسال چارگوش گفتگو توسط کاربر، DataActions
شیئی را برگردانید که حاوی یکی از کنشهای زیر باشد:
UpdateMessageAction: پیامی را که برنامه Chat ارسال کرده است بهروزرسانی میکند، مثلاً پیامی که کاربر از آن درخواست گفتگوی تعاملی کرده است.UpdateInlinePreviewAction: کارت را از پیشنمایش پیوند بهروز میکند.
عیبیابی
وقتی برنامه یا کارت Google Chat خطایی برمیگرداند، میانای Chat پیامی را نشان میدهد که میگوید «مشکلی پیش آمد». یا «نمیتوانیم درخواستتان را پردازش کنیم.» گاهیاوقات «میانای کاربری Chat» هیچ پیام خطایی نمایش نمیدهد، اما برنامه Chat یا کارت نتیجه غیرمنتظرهای تولید میکند؛ برای مثال، ممکن است پیام کارت ظاهر نشود.
اگرچه ممکن است پیام خطا در واسط کاربر Chat نمایش داده نشود، پیامهای خطای توصیفی و دادههای گزارش برای کمک به شما در رفع خطاها وقتی گزارش خطا برای برنامههای Chat روشن باشد دردسترس است. برای دریافت راهنمایی درباره مشاهده، اشکالزدایی، و رفع خطاها، عیبیابی و رفع خطاهای Google Chat را ببینید.
موضوعات مرتبط
- نمونه «مدیر مخاطبین» را ببینید، که برنامه Chat است و از چارگوشهای گفتگو برای جمعآوری اطلاعات تماس استفاده میکند.
- باز کردن کادرهای گفتگو از صفحه اصلی برنامه Google Chat.
- پاسخ دادن به فرمانهای برنامه Google Chat
- پردازش اطلاعات واردشده توسط کاربران
برنامههای گپ که برافزا نیستند: باز کردن کادرهای گفتگوی تعاملی
اسناد زیر برای برنامههای Chat که برافزاهای Google Workspace نیستند اعمال میشود. برای انتقال برنامه Chat که برافزا نیست، تبدیل برنامه Google Chat به برافزای Google Workspace را ببینید.
راهاندازی درخواست کادر گفتگو
نمونه کد زیر نشان میدهد که چگونه یک برنامه Chat که
برافزا نیست
درخواست گفتگویی را از دکمهای در پیام کارت راهاندازی میکند. برای باز کردن کادر گفتگو،
فیلد
button.interaction
روی OPEN_DIALOG تنظیم شده است:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
باز کردن کادر گفتگوی اولیه
وقتی کاربری درخواست گفتگویی را راهاندازی میکند، برنامه Chat که
برافزا نیست
رویداد تعاملی دریافت میکند که بهعنوان نوع
event در
Chat API نشان داده میشود. اگر تعامل باعث راهاندازی درخواست گفتگو شود، فیلد dialogEventType رویداد روی REQUEST_DIALOG تنظیم میشود.
برای باز کردن کادر گفتگو، برنامه Chat که برافزا نیست میتواند با برگرداندن شیء actionResponse با type: "DIALOG" و شیء Message به درخواست پاسخ دهد. برای مشخص کردن محتوای کادر گفتگو، اشیای زیر را اضافه میکنید:
- شیء
actionResponse، باtypeآن رویDIALOGتنظیم شده است. - شیء
dialogActionفیلدbodyحاوی عناصر میانای کاربر (UI) برای نمایش در کارت است، ازجمله یک یا چندsectionsابزاره. برای جمعآوری اطلاعات از کاربران، میتوانید ابزارههای ورودی فرم و ابزاره دکمه را مشخص کنید.
نمونه کد زیر نشان میدهد که چگونه برنامه Chat که برافزا نیست پاسخی برمیگرداند که کادر گفتگویی را باز میکند:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
مدیریت ارسال کادر گفتگو
وقتی کاربران روی دکمهای کلیک میکنند که کادر گفتگویی را ارسال میکند،
برنامه Chat که برافزا نیست
رویداد تعامل CARD_CLICKED
دریافت میکند که در آن
dialogEventType
SUBMIT_DIALOG است.
اختیاری: کادر گفتگوی دیگری را برگردانید
برای پردازش دادههایی که کاربران در برنامه Chat وارد میکنند و
این برنامه برافزا نیست، برنامه Chat
از
event.common.formInputs
شیء استفاده میکند.
در این مثال، برنامه Chat که برافزا نیست، گفتگوی اولیهای را باز میکند که قبلاز ارسال به گفتگوی دومی برای تأیید منتهی میشود:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
بستن کادر گفتگو
وقتی کاربران روی دکمهای در کادر گفتگو کلیک میکنند، برنامه Chat که برافزا نیست کنش مرتبط خود را اجرا میکند و شیء رویداد را با اطلاعات زیر ارائه میدهد:
eventTypeCARD_CLICKEDاست.dialogEventTypeSUBMIT_DIALOGاست.
برنامه Chat که برافزا نیست باید
شیء
ActionResponse
را با type تنظیمشده روی DIALOG و dialogAction تکمیلشده برگرداند. اگر
کنش ناموفق نبود، dialogAction.actionStatus باید OK باشد، همانطور که در
مثال زیر آمده است:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
اختیاری: نمایش اعلان موقت
برنامه Chat که برافزا نیست میتواند با برگرداندن
ActionResponse
با actionStatus تنظیمشده،
اعلان موفقیت یا خطا پاسخ دهد.
مثال زیر بررسی میکند که پارامترها معتبر باشند و درصورت نامعتبر بودن، کادر گفتگو را با اعلان نوشتاری میبندد:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
اختیاری: ارسال پیام تأیید Chat
برای ارسال پیام جدید هنگام بستن کادر گفتگو در
برنامه «گپ» که برافزا نیست،
شیء
ActionResponse
را با type: "NEW_MESSAGE" برگردانید. مثال زیر کادر گفتگوی
پیامک تأییدیه را میبندد:
Node.js
Python
جاوا
Apps Script
این مثال با برگرداندن JSON کارت، پیام کارت ارسال میکند. همچنین میتوانید از خدمات کارت Apps Script استفاده کنید.
برای بهروزرسانی پیام، شیء actionResponse را برگردانید که حاوی
پیام بهروزرسانیشده است و type را روی یکی از موارد زیر تنظیم میکند:
-
UPDATE_MESSAGE: پیامی را که درخواست گفتگوی را راهاندازی کرده است بهروز میکند. -
UPDATE_USER_MESSAGE_CARDS: کارت را از پیشنمایش پیوند بهروز میکند.