این راهنما توضیح میدهد که برنامههای Google Chat چگونه میتوانند با ساختن ورودیهای فرم در میاناهای مبتنی بر کارت، اطلاعات را از کاربران جمعآوری و پردازش کنند.
برنامههای گپ برای انجام کنشها در داخل یا خارج از Chat، ازجمله به روشهای زیر، از کاربران اطلاعات درخواست میکنند:
- تنظیمات را پیکربندی کنید. برای مثال، برای اینکه کاربران بتوانند تنظیمات اعلان را سفارشیسازی کنند یا برنامه Chat را پیکربندی کنند و به یک یا چند فضا اضافه کنند.
- ایجاد یا بهروزرسانی اطلاعات در سایر برنامههای Google Workspace. برای مثال، به کاربران اجازه دهید رویداد «تقویم Google» ایجاد کنند.
- به کاربران اجازه دهید به منابع در برنامهها یا سرویسهای وب دیگر دسترسی داشته باشند و آنها را بهروز کنند. برای مثال، برنامه Chat میتواند به کاربران کمک کند وضعیت بلیت پشتیبانی را مستقیماً از فضای Chat بهروز کنند.
پیشنیازها
HTTP
برنامه Google Chat که تعاملهای کاربر را دریافت میکند و به آنها پاسخ میدهد. برای ساختن یکی، شروع سریع HTTP را تکمیل کنید.
Apps Script
برنامه Google Chat که تعاملهای کاربر را دریافت میکند و به آنها پاسخ میدهد. برای ساختن آن، شروع سریع Apps Script را تکمیل کنید.
ساختن فرم بااستفاده از کارتها
برای جمعآوری اطلاعات، برنامههای Chat فرمها و ورودیهایشان را طراحی میکنند و آنها را در کارتها میسازند. برای نمایش کارتها به کاربران، برنامههای Chat میتوانند از میاناهای Chat زیر استفاده کنند:
- پیامهایی که حاوی یک یا چند کارت هستند.
- صفحههای اصلی، که کارتی است که از برگه صفحه اصلی در پیامهای مستقیم با برنامه Chat ظاهر میشود.
- کادرهای گفتگو که کارتهایی هستند که در پنجره جدیدی از پیامها و صفحههای اصلی باز میشوند.
برنامههای گپ میتوانند بااستفاده از ابزارههای زیر کارت بسازند:
ابزارههای ورودی فرم که از کاربران اطلاعات درخواست میکنند. درصورت تمایل، میتوانید اعتبارسنجی را به ابزارههای ورودی فرم اضافه کنید تا مطمئن شوید کاربران اطلاعات را بهدرستی وارد و قالببندی میکنند. برنامههای Chat میتوانند از ابزارههای ورودی فرم زیر استفاده کنند:
- ورودیهای نوشتاری
(
textInput) برای نوشتار پیشنهادی یا قالب آزاد. - ورودیهای انتخاب
(
selectionInput) عناصر واسط کاربر قابلانتخاب هستند، مانند چارگوشهای انتخاب، دکمههای رادیویی، و منوهای کرکرهای. ابزارههای ورودی انتخاب همچنین میتوانند موارد را از دادههای Google Workspace (مانند فضای Chat) یا منبع داده پویا پر کنند و پیشنهاد دهند. برای جزئیات، بخشهای زیر را ببینید: افزودن منوِ کرکرهای و افزودن منوِ چندانتخابی. - انتخابگرهای تاریخ و زمان
(
dateTimePicker) برای ورودیهای تاریخ و زمان.
- ورودیهای نوشتاری
(
ابزاره دکمه تا کاربران بتوانند مقادیری را که در کارت وارد کردهاند ارسال کنند. پساز اینکه کاربر روی دکمه کلیک میکند، برنامه Chat میتواند اطلاعاتی را که دریافت میکند پردازش کند.
در مثال زیر، کارتی اطلاعات تماس را بااستفاده از ورودی نوشتاری، انتخابگر تاریخ و زمان، و ورودی انتخاب جمعآوری میکند:
برای نمونههای بیشتر از ابزارههای تعاملی که میتوانید برای جمعآوری اطلاعات استفاده کنید، طراحی کارت یا کادر گفتگوی تعاملی را ببینید.
افزودن منوِ کرکرهای
برای سفارشیسازی کردن موارد انتخابی یا اجازه دادن به کاربران برای انتخاب یک مورد از منبع داده پویا، برنامههای Chat میتوانند از منوهای کرکرهای استفاده کنند که نوعی ابزاره SelectionInput هستند. برای مثال، کارت زیر منوِ کرکرهای را نمایش میدهد که کاربران میتوانند بهطور پویا از فهرست مخاطبین انتخاب کنند:
میتوانید موارد منوِ کرکرهای را از منابع داده زیر پر کنید:
- دادههای Google Workspace که شامل کاربران یا فضاهای Chat میشود.
- منابع داده خارجی، مثل پایگاه داده رابطهای.
پر کردن موارد از منبع داده Google Workspace
برای پر کردن موارد از منابع داده Google Workspace، مثل
کاربران Google Workspace، فیلد platformDataSource را در
شیء DataSourceConfig مشخص کنید. برخلاف دیگر انواع ورودی انتخاب، شما
اشیاء
SelectionItem
را حذف میکنید، زیرا این موارد انتخاب بهطور پویا از
Google Workspace تأمین میشوند.
کد زیر منوِ کرکرهای کاربران Google Workspace را نشان میدهد:
(قالب) JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "contacts",
"type": "DROPDOWN",
"label": "Select contact from organization",
"dataSourceConfigs": [
{
"platformDataSource": {
"commonDataSource": "USER"
},
"minCharactersTrigger": 1
}
]
}
}
]
}
]
}
پر کردن موارد از منبع داده خارجی
منوهای کرکرهای همچنین میتوانند موارد را از منبع داده خارجی یا شخص ثالث پر کنند. برای استفاده از منبع داده خارجی، فیلد
remoteDataSource
را در شیء
DataSourceConfig
مشخص میکنید که حاوی تابعی است که موارد را از منبع داده جستجو و برمیگرداند.
برای کاهش درخواستها به منبع داده خارجی، میتوانید موارد پیشنهادی را که قبلاز تایپ کردن کاربران در منو در منوِ کرکرهای ظاهر میشوند اضافه کنید. برای پر کردن موارد پیشنهادی از منبع داده خارجی، اشیای ایستا
SelectionItem
را مشخص کنید.
کد زیر منوِ کرکرهای را نشان میدهد که موارد را از منبع داده خارجی پُر و پُرسمان میکند:
(قالب) JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "crm_leads",
"type": "DROPDOWN",
"label": "Select CRM Lead",
"dataSourceConfigs": [
{
"remoteDataSource": {
"function": "getCrmLeads"
},
"minCharactersTrigger": 2
}
],
"items": [
{
"text": "Suggested Lead 1",
"value": "lead-1"
}
]
}
}
]
}
]
}
برای دیدن نمونه کاملی که نحوه برگرداندن موارد پیشنهادی را نشان میدهد، به بخش پیشنهاد دادن موارد انتخابی مراجعه کنید.
افزودن منو چندانتخابی
برای سفارشیسازی کردن موارد انتخابی یا اجازه دادن به کاربران برای انتخاب موارد از منبع داده پویا، برنامههای Chat میتوانند از منوهای چندانتخابی استفاده کنند که نوعی ابزاره SelectionInput است. برای مثال، کارت زیر منو چندانتخابی را نمایش میدهد که کاربران میتوانند بهطور پویا از فهرست مخاطبین انتخاب کنند:
میتوانید موارد منو چندانتخابی را از منابع داده زیر پر کنید:
- دادههای Google Workspace که شامل کاربران یا فضاهای Chat است که کاربر عضو آنها است. این منو فقط موارد مربوط به همان سازمان Google Workspace را نشان میدهد.
- منابع داده خارجی، مثل پایگاه داده رابطهای. برای مثال، میتوانید از منوهای چندانتخابی استفاده کنید تا به کاربر کمک کنید از فهرست مشتریان بالقوه در سیستم مدیریت ارتباط با مشتری (CRM) انتخاب کند.
پر کردن موارد از منبع داده Google Workspace
برای استفاده از منابع داده Google Workspace، فیلد
platformDataSource
را در ابزاره SelectionInput مشخص کنید. برخلاف دیگر انواع ورودی انتخاب، شما
اشیاء
SelectionItem
را حذف میکنید، زیرا این موارد انتخاب بهطور پویا از
Google Workspace تأمین میشوند.
کد زیر منو چندانتخابی از کاربران Google Workspace را نشان میدهد.
برای پر کردن کاربران، ورودی انتخاب commonDataSource را روی USER تنظیم میکند:
(قالب) JSON
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 5,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"commonDataSource": "USER"
}
}
}
کد زیر منو چندانتخابی از فضاهای Chat را نشان میدهد. برای پر کردن فضاها، ورودی انتخاب فیلد hostAppDataSource را مشخص میکند. منو چندانتخابی همچنین
defaultToCurrentSpace را روی true تنظیم میکند، که باعث میشود فضای فعلی انتخاب پیشفرض
در منو باشد:
(قالب) JSON
{
"selectionInput": {
"name": "spaces",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 3,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"hostAppDataSource": {
"chatDataSource": {
"spaceDataSource": {
"defaultToCurrentSpace": true
}
}
}
}
}
}
پر کردن موارد از منبع داده خارجی
منوهای چندانتخابی همچنین میتوانند موارد را از منبع داده خارجی یا طرف سوم پر کنند. برای استفاده از منبع داده خارجی، فیلد
externalDataSource
را در ابزاره SelectionInput که حاوی تابع پرسمانکننده است مشخص میکنید
و موارد را از منبع داده برمیگردانید.
برای کاهش درخواستها به منبع داده خارجی، میتوانید
موارد پیشنهادی را که در منو چندانتخابی ظاهر میشود قبلاز اینکه کاربران در منو تایپ کنند
اضافه کنید. برای مثال، میتوانید مخاطبینی را که اخیراً جستجوشدهاند برای کاربر پر کنید. برای پر کردن موارد پیشنهادی از منبع داده خارجی، اشیای ایستا
SelectionItem
را مشخص کنید.
نمونه کد زیر منوی چندانتخابی را نشان میدهد که موارد را از منبع داده خارجی پُر میکند و از آن پُرسمان میکند:
Node.js
FUNCTION_URL را با نقطه پایانی HTTP که از منبع داده خارجی پرسمان میکند جایگزین کنید.
Python
FUNCTION_URL را با نقطه پایانی HTTP که از منبع داده خارجی پرسمان میکند جایگزین کنید.
جاوا
FUNCTION_URL را با نقطه پایانی HTTP که از منبع داده خارجی پرسمان میکند جایگزین کنید.
Apps Script
این نمونه با برگرداندن JSON کارت، پیام کارتی ارسال میکند. همچنین میتوانید از سرویس کارت Apps Script استفاده کنید.
برای دیدن نمونه کاملی که نحوه برگرداندن موارد پیشنهادی را نشان میدهد، به بخش پیشنهاد دادن موارد انتخابی مراجعه کنید.
دریافت داده از ابزارههای تعاملی
هرگاه کاربران روی دکمهای کلیک کنند،
کنش
برنامه Chat آن با اطلاعات مربوط به تعامل راهاندازی میشود. در
commonEventObject
پایهبار رویداد، شیء formInputs حاوی هر مقداری است که کاربر وارد میکند.
میتوانید مقادیر را از شیء
event.commonEventObject.formInputs.WIDGET_NAME بازیابی کنید، که در آن
WIDGET_NAME فیلد name است که برای ابزاره مشخص کردهاید.
مقادیر بهعنوان نوع داده خاصی برای ابزاره برگردانده میشوند.
در زیر بخشی از شیء رویداد نشان داده شده است که در آن کاربر مقادیری را برای هر ابزاره وارد کرده است:
{
"commonEventObject": { "formInputs": {
"contactName": { "stringInputs": {
"value": ["Kai 0"]
}},
"contactBirthdate": { "dateInput": {
"msSinceEpoch": 1000425600000
}},
"contactType": { "stringInputs": {
"value": ["Personal"]
}}
}}
}
برای دریافت دادهها، برنامه Chat شما شیء رویداد را مدیریت میکند تا مقادیری را که کاربران در ابزارهها وارد میکنند دریافت کند. جدول زیر نحوه دریافت مقدار برای ابزاره ورودی فرم دادهشده را نشان میدهد. برای هر ابزاره، جدول نوع دادهای را که ابزاره میپذیرد، جایی که مقدار در شیء رویداد ذخیره میشود، و یک مقدار نمونه را نشان میدهد.
| ابزاره ورودی فرم | نوع دادههای ورودی | مقدار ورودی از شیء رویداد | مقدار نمونه |
|---|---|---|---|
textInput |
stringInputs |
event.commonEventObject.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
برای دریافت اولین یا تنها مقدار، event.commonEventObject.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker که فقط تاریخ میپذیرد. |
dateInput |
event.commonEventObject.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
پساز اینکه برنامه Chat دادهها را دریافت کرد، میتواند هرکدام از کارهای زیر را انجام دهد:
- برای کارتهایی که حاوی منو چندانتخابی هستند، براساس آنچه کاربر در منو تایپ میکند، موارد را پیشنهاد دهید یا تکمیل کنید.
- دادهها را به کارت دیگری منتقل کنید تا کاربر بتواند اطلاعاتش را مرور کند یا به بخش بعدی فرم برود.
- به کاربر پاسخ دهید تا تأیید کنید که کاربر فرم را باموفقیت تکمیل کرده است.
پیشنهاد موارد انتخابی
اگر کارتی حاوی منوِ چندانتخابی یا منوِ کرکرهای باشد که
موارد را از منبع داده خارجی پر میکند،
برنامه Chat میتواند موارد پیشنهادی را براساس آنچه
کاربران در منو تایپ میکنند برگرداند. برای مثال، اگر کاربر شروع به تایپ کردن Atl برای منویی کند
که شهرهای ایالات متحده را نشان میدهد،
برنامه Chat شما میتواند قبلاز اینکه کاربر تایپ کردن را تمام کند،
Atlanta را بهطور خودکار پیشنهاد دهد. برنامه Chat میتواند حداکثر ۱۰۰
مورد را پیشنهاد دهد.
برای پیشنهاد دادن و پر کردن پویای موارد در ورودی انتخاب، ابزاره SelectionInput در کارت باید تابعی را مشخص کند که از منبع داده خارجی پرسمان میکند. برای منوهای چندانتخابی، فیلد
externalDataSource
را مشخص میکنید. برای منوهای کرکرهای، فیلد
remoteDataSource
را در شیء
DataSourceConfig
مشخص میکنید.
همچنین میتوانید تعداد نویسههایی را که کاربر قبلاز اینکه منو پیشنهادها را برگرداند تایپ میکند پیکربندی کنید. برای منوهای چندانتخابی، فیلد
multiSelectMinQueryLength را تنظیم کنید. برای منوهای کرکرهای، فیلد
min_characters_trigger را در DataSourceConfig تنظیم کنید.
برای برگرداندن موارد پیشنهادی، تابع باید کارهای زیر را انجام دهد:
- یک شیء رویداد را مدیریت کنید، که برنامه Chat هنگام تایپ کردن کاربران در منو دریافت میکند.
- از شیء رویداد، مقداری را که کاربر تایپ میکند دریافت کنید، که در فیلد
event.commonEventObject.parameters["autocomplete_widget_query"]نشان داده میشود. - بااستفاده از مقدار ورودی کاربر، منبع داده را پُرسمان کنید تا یک یا چند
SelectionItemsبرای پیشنهاد به کاربر دریافت کنید. - موارد پیشنهادی را با برگرداندن کنش
RenderActionsبا شیءmodifyCardبرگردانید.
نمونه کد زیر نشان میدهد که چگونه یک برنامه Chat
بهطور پویا موارد را در منوی چندانتخابی روی کارت پیشنهاد میکند. وقتی کاربر در منو تایپ میکند، تابع یا نقطه پایانی ارائهشده در فیلد externalDataSource ابزاره، منبع داده خارجی را پُرسمان میکند و مواردی را پیشنهاد میدهد که کاربر میتواند انتخاب کند.
Node.js
FUNCTION_URL را با نقطه پایانی HTTP که از منبع داده خارجی پرسمان میکند جایگزین کنید.
Python
FUNCTION_URL را با نقطه پایانی HTTP که از منبع داده خارجی پرسمان میکند جایگزین کنید.
جاوا
FUNCTION_URL را با نقطه پایانی HTTP که از منبع داده خارجی پرسمان میکند جایگزین کنید.
Apps Script
این نمونه با برگرداندن JSON کارت، پیام کارتی ارسال میکند. همچنین میتوانید از سرویس کارت Apps Script استفاده کنید.
انتقال داده به کارت دیگر
پساز اینکه کاربر اطلاعات را از کارتی ارسال کرد، ممکن است لازم باشد کارتهای بیشتری را برای انجام هریک از کارهای زیر برگردانید:
- با ایجاد بخشهای متمایز، به کاربران کمک کنید فرمهای طولانیتر را تکمیل کنند.
- به کاربران اجازه دهید اطلاعات کارت اولیه را پیشنمایش و تأیید کنند تا بتوانند پاسخهایشان را قبلاز ارسال بازبینی کنند.
- بخشهای باقیمانده فرم را بهطور پویا پر کنید. برای مثال، برای درخواست از کاربران برای ایجاد قرار، برنامه Chat میتواند کارت اولیهای را نمایش دهد که دلیل قرار را درخواست میکند و سپس کارت دیگری را پر میکند که زمانهای دردسترس را براساس نوع قرار ارائه میدهد.
برای انتقال ورودی داده از کارت اولیه، میتوانید ابزاره button را با
actionParameters
بسازید که حاوی name ابزاره و مقدار ورودی کاربر است، همانطور که در مثال زیر نشان داده شده است:
Node.js
FUNCTION_URL را با نقطه پایان HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Python
FUNCTION_URL را با نقطه پایان HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
جاوا
FUNCTION_URL را با نقطه پایان HTTP که کلیکهای دکمه را مدیریت میکند جایگزین کنید.
Apps Script
این نمونه با برگرداندن JSON کارت، پیام کارتی ارسال میکند. همچنین میتوانید از سرویس کارت Apps Script استفاده کنید.
وقتی کاربر روی دکمه کلیک میکند، برنامه Chat شما یک شیء رویداد دریافت میکند که ازطریق آن میتوانید داده دریافت کنید.
پاسخ دادن به فرم ارسالشده
پساز دریافت دادهها از پیام کارت یا کادر گفتگو، برنامه Chat با تأیید دریافت یا برگرداندن خطا پاسخ میدهد.
در مثال زیر، برنامه Chat پیام نوشتاری ارسال میکند تا تأیید کند فرم ارسالشده از پیام کارتی را باموفقیت دریافت کرده است.
Node.js
Python
جاوا
Apps Script
این نمونه با برگرداندن JSON کارت، پیام کارتی ارسال میکند. همچنین میتوانید از سرویس کارت Apps Script استفاده کنید.
برای پردازش و بستن کادر گفتگو، یک شیء
RenderActions
برمیگردانید که مشخص میکند آیا میخواهید پیام تأیید ارسال کنید، پیام یا کارت اصلی را بهروز کنید، یا فقط کادر گفتگو را ببندید. برای اطلاع از مراحل، به
بستن کادر گفتگو مراجعه کنید.
عیبیابی
این بخش مراحل عیبیابی را برای کدهای خطای خاص و رفتارهای زمان اجرا هنگام تعامل با کادرهای گفتگو در Chat ارائه میدهد.
تعاملهای کادر گفتگو خطای «خطای نامشخص که برافزا را فرا میخواند» را برمیگرداند
هنگام تعامل با کادر گفتگو، اگر گزارشهای خطا را با پیام «خطای نامشخص در فراخوانی برافزا» و کد ۱۳ مشاهده کردید، معمولاً نشاندهنده یک خطای داخلی است یا اینکه نقطه پایانی HTTP برنامه Chat نتوانسته درخواست را پردازش کند یا پاسخ معتبری برگرداند.
برای عیبیابی کردن این خطا:
- گزارشهای نقطه پایانی HTTP را ازنظر وجود هرگونه استثنای مدیریتنشده یا خرابی بررسی کنید.
- بررسی کنید که نقطه پایانیتان ظرف ۳۰ ثانیه به درخواستها پاسخ دهد. اگر اجرای نقطه پایانی بیشتر از ۳۰ ثانیه طول بکشد، Chat نمیتواند پاسخ را پردازش کند و تعامل ناموفق خواهد بود. برای جزئیات، محدودیتهای نرخ و روالهای مطلوب را ببینید.
- مطمئن شوید نقطه پایانیتان پاسخ معتبری برمیگرداند. برای ارسالهای گفتگو،
نقطه پایانی باید شیء
RenderActionsرا در قالب JSON صحیح برگرداند. اگر پاسخ قالب نادرستی داشته باشد یا فیلدهای الزامی را نداشته باشد، ممکن است تعامل با کادر گفتگو ناموفق باشد.
وقتی برنامه Google Chat یا کارت خطایی را برمیگرداند، میانای Chat پیامی با این مضمون نشان میدهد: «مشکلی پیش آمد.» یا «نمیتوانیم درخواستتان را پردازش کنیم.» گاهی اوقات میانای کاربری Chat هیچ پیام خطایی نمایش نمیدهد، اما برنامه Chat یا کارت نتیجه غیرمنتظرهای تولید میکند؛ برای مثال، ممکن است پیام کارت ظاهر نشود.
اگرچه ممکن است پیام خطا در میانای کاربر Chat نمایش داده نشود، پیامهای خطای توصیفی و دادههای گزارش برای کمک به شما در رفع خطاها هنگامی که ثبت خطا برای برنامههای Chat روشن است، دردسترس هستند. برای دریافت راهنمایی درباره مشاهده، اشکالزدایی، و رفع خطاها، به عیبیابی و رفع خطاهای Google Chat مراجعه کنید.
موضوعات مرتبط
- نمونه «مدیر مخاطبین» را مشاهده کنید، که یک برنامه Chat است که از کاربران میخواهد فرم تماس را ازطریق پیامهای کارتی و کادرهای گفتگو تکمیل کنند.
- باز کردن کادرهای گفتگوی تعاملی
برنامههای گپ که برافزا نیستند: خواندن دادههای فرم واردشده توسط کاربران در کارتها
اسناد زیر برای برنامههای Chat که برافزاهای Google Workspace نیستند اعمال میشود. برای انتقال برنامه Chat که برافزا نیست، به تبدیل برنامه Google Chat به برافزای Google Workspace مراجعه کنید.
ساختن فرم بااستفاده از کارتها
برای نمونهای از برنامه Chat که برافزا نیست و از فرم تماس با ورودی نوشتاری، انتخابگر تاریخ و زمان، و ورودی انتخاب استفاده میکند، کد زیر را ببینید:
Node.js
Python
جاوا
Apps Script
دریافت داده از ابزارههای تعاملی
هرگاه کاربران روی دکمهای کلیک میکنند، برنامههای Chat که برافزا نیستند رویداد تعاملی وابسته به مکان دکمه دریافت میکنند:
اگر دکمه در پیام یا کادر گفتگویی باشد، برنامههای Chat که برافزا نیستند
CARD_CLICKEDرویداد تعاملی دریافت میکنند که حاوی اطلاعاتی درباره تعامل است. بار مفیدCARD_CLICKEDرویدادهای تعامل حاوی یکcommon.formInputsشیء (event.common.formInputs) با هر مقداری است که کاربر وارد میکند.میتوانید مقادیر را از شیء
common.formInputs.WIDGET_NAMEبازیابی کنید، که در آن WIDGET_NAME فیلدnameاست که برای ابزاره مشخص کردهاید. مقادیر بهعنوان نوع داده خاصی برای ابزاره برگردانده میشوند (بهصورت شیءInputsنشان داده میشود).در زیر بخشی از رویداد تعامل
CARD_CLICKEDنشان داده شده است که در آن کاربر مقادیری را برای هر ابزاره وارد کرده است:HTTP
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }Apps Script
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }اگر دکمه در صفحه اصلی باشد، برنامههای Chat که برافزا نیستند رویداد تعامل
SUBMIT_FORMدریافت میکنند. بار داده رویداد تعامل حاوی شیءcommonEventObject.formInputs(event.commonEventObject.formInputs) با هر مقداری است که کاربر وارد میکند.میتوانید مقادیر را از شیء
commonEventObject.formInputs.WIDGET_NAMEبازیابی کنید، که در آن WIDGET_NAME فیلدnameاست که برای ابزاره مشخص کردهاید. مقادیر بهعنوان نوع داده خاصی برای ابزاره برگردانده میشوند (بهصورت شیءInputsنشان داده میشود).در زیر بخشی از رویداد تعامل
SUBMIT_FORMنشان داده شده است که در آن کاربر مقادیری را برای هر ابزاره وارد کرده است:HTTP
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }Apps Script
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }
برای دریافت دادهها، برنامه Chat که برافزا نیست رویداد تعامل را مدیریت میکند تا مقادیری را که کاربران در ابزارهها وارد میکنند دریافت کند. جدول زیر نحوه دریافت مقدار برای ابزاره ورودی فرم مشخصی را نشان میدهد. برای هر ابزاره، جدول نوع دادهای را که ابزاره میپذیرد، جایی که مقدار در رویداد تعامل ذخیره میشود، و یک مقدار نمونه را نشان میدهد.
| ابزاره ورودی فرم | نوع دادههای ورودی | مقدار ورودی از رویداد تعامل | مقدار نمونه |
|---|---|---|---|
textInput |
stringInputs |
event.common.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
برای دریافت اولین یا تنها مقدار، event.common.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker که فقط تاریخ میپذیرد. |
dateInput |
event.common.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
انتقال داده به کارت دیگر
برای انتقال ورودی داده از کارت اولیه در
برنامه Chat که برافزا نیست،
ابزاره button را با
actionParameters
بسازید که حاوی name ابزاره و مقدار ورودی کاربر باشد، همانطور که
در مثال زیر نشان داده شده است:
Node.js
Python
جاوا
Apps Script
وقتی کاربر روی دکمه کلیک میکند، برنامه Chat که
برافزا نیست
رویداد تعامل CARD_CLICKED را دریافت میکند که ازطریق آن میتوانید
داده دریافت کنید.
پاسخ دادن به فرم ارسالشده
در مثال زیر، برنامه Chat که برافزا نیست، پیام نوشتاری ارسال میکند تا تأیید کند فرم ارسالشده از کادر گفتگو یا پیام کارتی را باموفقیت دریافت کرده است:
Node.js
Python
جاوا
Apps Script
برای پردازش و بستن کادر گفتگویی در برنامه Chat که برافزا نیست،
شیء
ActionResponse
را برگردانید که مشخص میکند میخواهید پیام تأیید ارسال کنید، پیام یا کارت اصلی را بهروز کنید، یا فقط کادر گفتگو را ببندید. برای اطلاع از مراحل، به
بستن کادر گفتگو مراجعه کنید.