במדריך הזה מוסבר איך אפליקציות ל-Google Chat יכולות לאסוף ולעבד מידע ממשתמשים באמצעות יצירת שדות קלט בטפסים בממשקים מבוססי-כרטיסים.
אפליקציות ל-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",
"data_source_configs": [
{
"platformDataSource": {
"commonDataSource": "USER"
},
"min_characters_trigger": 1
}
]
}
}
]
}
]
}
איכלוס פריטים ממקור נתונים חיצוני
תפריטים נפתחים יכולים גם לאכלס פריטים ממקור נתונים חיצוני או של צד שלישי. כדי להשתמש במקור נתונים חיצוני, צריך לציין את השדה remoteDataSource באובייקט DataSourceConfig שמכיל את הפונקציה שמבצעת שאילתה ומחזירה פריטים ממקור הנתונים.
כדי לצמצם את מספר הבקשות למקור נתונים חיצוני, אפשר לכלול פריטים מוצעים שמופיעים בתפריט הנפתח לפני שהמשתמשים מקלידים בתפריט. כדי לאכלס פריטים מוצעים ממקור נתונים חיצוני, צריך לציין אובייקטים סטטיים של SelectionItem.
הקוד הבא מציג תפריט נפתח שמבצע שאילתה ומאכלס פריטים ממקור נתונים חיצוני:
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "crm_leads",
"type": "DROPDOWN",
"label": "Select CRM Lead",
"data_source_configs": [
{
"remoteDataSource": {
"function": "getCrmLeads"
},
"min_characters_trigger": 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 ששולחת שאילתה למקור הנתונים החיצוני.
Java
מחליפים את FUNCTION_URL בנקודת הקצה של HTTP ששולחת שאילתה למקור הנתונים החיצוני.
Apps Script
בדוגמה הזו, הודעת הכרטיס נשלחת על ידי החזרת JSON של הכרטיס. אפשר גם להשתמש בשירות הכרטיסים של Apps Script.
דוגמה מלאה שמראה איך להחזיר פריטים מוצעים מופיעה בקטע הצעת פריטים לבחירה.
קבלת נתונים מווידג'טים אינטראקטיביים
בכל פעם שמשתמשים לוחצים על לחצן, הפעולה של אפליקציות Chat מופעלת עם מידע על האינטראקציה. באובייקט formInputs במטען הייעודי (payload) של האירוע commonEventObject, מופיעים כל הערכים שהמשתמש מזין.
אפשר לאחזר את הערכים מהאובייקט 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 יכולה להציע עד 100 פריטים.
כדי להציע פריטים ולמלא אותם באופן דינמי בשדה קלט לבחירה, בווידג'ט 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 ששולחת שאילתה למקור הנתונים החיצוני.
Java
מחליפים את FUNCTION_URL בנקודת הקצה של HTTP ששולחת שאילתה למקור הנתונים החיצוני.
Apps Script
בדוגמה הזו, הודעת הכרטיס נשלחת על ידי החזרת JSON של הכרטיס. אפשר גם להשתמש בשירות הכרטיסים של Apps Script.
העברת נתונים לכרטיס אחר
אחרי שמשתמש שולח מידע מכרטיס, יכול להיות שתצטרכו להחזיר כרטיסים נוספים כדי לבצע אחת מהפעולות הבאות:
- כדי לעזור למשתמשים למלא טפסים ארוכים יותר, כדאי ליצור קטעים נפרדים.
- אפשר לאפשר למשתמשים לראות תצוגה מקדימה של המידע בכרטיס הראשוני ולאשר אותו, כדי שיוכלו לבדוק את התשובות שלהם לפני השליחה.
- מילוי דינמי של שאר חלקי הטופס. לדוגמה, כדי להנחות משתמשים ליצור פגישה, אפליקציית Chat יכולה להציג כרטיס ראשוני שבו המשתמשים מתבקשים לציין את הסיבה לפגישה, ואז למלא כרטיס אחר עם זמנים פנויים על סמך סוג הפגישה.
כדי להעביר את קלט הנתונים מהכרטיס הראשוני, אפשר ליצור את הווידג'ט button
עם actionParameters
שמכיל את name של הווידג'ט ואת הערך שהמשתמש מזין, כמו בדוגמה הבאה:
Node.js
מחליפים את הערך FUNCTION_URL בנקודת הקצה (endpoint) של HTTP שמטפלת בלחיצות על הלחצן.
Python
מחליפים את הערך FUNCTION_URL בנקודת הקצה (endpoint) של HTTP שמטפלת בלחיצות על הלחצן.
Java
מחליפים את הערך FUNCTION_URL בנקודת הקצה (endpoint) של HTTP שמטפלת בלחיצות על הלחצן.
Apps Script
בדוגמה הזו, הודעת הכרטיס נשלחת על ידי החזרת JSON של הכרטיס. אפשר גם להשתמש בשירות הכרטיסים של Apps Script.
כשמשתמש לוחץ על הלחצן, אפליקציית הצ'אט שלכם מקבלת אובייקט אירוע שממנו אפשר לקבל נתונים.
איך מגיבים לתשובות שנשלחו בטופס
אחרי קבלת הנתונים מהודעה בכרטיס או מתיבת דו-שיח, אפליקציית Chat משיבה באישור קבלה או בהחזרת שגיאה.
בדוגמה הבאה, אפליקציית Chat שולחת הודעת טקסט כדי לאשר שהיא קיבלה בהצלחה טופס שנשלח מהודעת כרטיס.
Node.js
Python
Java
Apps Script
בדוגמה הזו, הודעת הכרטיס נשלחת על ידי החזרת JSON של הכרטיס. אפשר גם להשתמש בשירות הכרטיסים של Apps Script.
כדי לעבד ולסגור את תיבת הדו-שיח, מחזירים אובייקט RenderActions שמציין אם רוצים לשלוח הודעת אישור, לעדכן את ההודעה או הכרטיס המקוריים או פשוט לסגור את תיבת הדו-שיח. במאמר סגירת תיבת דו-שיח מוסבר איך לעשות זאת.
פתרון בעיות
בקטע הזה מפורטים שלבים לפתרון בעיות שקשורות לקודי שגיאה ספציפיים ולפעולות בזמן ריצה שמתרחשות במהלך אינטראקציה עם תיבות דו-שיח ב-Chat.
אינטראקציות בתיבת דו-שיח מחזירות את השגיאה 'שגיאה לא מזוהה מפעילה את התוסף'
באינטראקציה עם תיבת דו-שיח, אם מופיעים יומני שגיאות עם ההודעה Unspecified error invoking the add-on. וקוד 13, בדרך כלל מדובר בשגיאה פנימית או בנקודת קצה של אפליקציית Chat מסוג HTTP שלא הצליחה לעבד את הבקשה או להחזיר תגובה תקינה.
כדי לפתור את השגיאה:
- בודקים ביומנים של נקודת הקצה של HTTP אם יש חריגים או קריסות שלא טופלו.
- מוודאים שנקודת הקצה מגיבה לבקשות תוך 30 שניות. אם לוקח יותר מ-30 שניות להפעיל את נקודת הקצה, Chat לא יכול לעבד את התגובה והאינטראקציה נכשלת. פרטים נוספים זמינים במאמר בנושא מגבלות קצב ושיטות מומלצות.
- מוודאים שנקודת הקצה מחזירה תגובה תקינה. כששולחים דיאלוג, נקודת הקצה צריכה להחזיר אובייקט
RenderActionsבפורמט JSON תקין. אם התגובה לא תקינה או שהיא לא מכילה את השדות הנדרשים, יכול להיות שהאינטראקציה עם תיבת הדו-שיח תיכשל.
כשמוחזרת שגיאה מאפליקציה או מכרטיס ב-Google Chat, בממשק של Chat מוצגת ההודעה "משהו השתבש". או 'לא הצלחנו לעבד את הבקשה שלך'. לפעמים בממשק המשתמש של Chat לא מוצגת הודעת שגיאה, אבל אפליקציית Chat או הכרטיס מפיקים תוצאה לא צפויה. לדוגמה, יכול להיות שהודעה בכרטיס לא תופיע.
יכול להיות שלא תוצג הודעת שגיאה בממשק המשתמש של Chat, אבל אם הפעלתם את רישום השגיאות באפליקציות של Chat, תוכלו לראות הודעות שגיאה תיאוריות ונתוני יומן שיעזרו לכם לתקן את השגיאות. לקבלת עזרה בצפייה בשגיאות, באיתור באגים ובתיקון שגיאות, אפשר לעיין במאמר פתרון בעיות ותיקון שגיאות ב-Google Chat.
נושאים קשורים
- כאן אפשר לראות דוגמה לאפליקציה לניהול אנשי קשר, שהיא אפליקציית Chat שמבקשת מהמשתמשים למלא טופס ליצירת קשר מהודעות בכרטיסים ומתיבות דו-שיח.
- פתיחת תיבות דו-שיח אינטראקטיביות
אפליקציות ל-Chat שלא מוגדרות כתוספים: קריאת נתוני טפסים שהמשתמשים מזינים בכרטיסים
המסמכים הבאים רלוונטיים לאפליקציות ל-Chat שהן לא תוספים ל-Google Workspace. כדי להעביר אפליקציה ל-Chat שלא מוגדרת כתוסף, אפשר לעיין במאמר בנושא המרת אפליקציה ל-Google Chat לתוסף ל-Google Workspace.
יצירת טפסים באמצעות כרטיסים
לדוגמה, אפליקציית Chat שהיא לא תוסף ומשתמשת בטופס ליצירת קשר עם שדה להזנת טקסט, בורר תאריכים ושעה ושדה לבחירה, אפשר לראות בקוד הבא:
Node.js
Python
Java
Apps Script
קבלת נתונים מווידג'טים אינטראקטיביים
בכל פעם שמשתמשים לוחצים על לחצן, אפליקציות ל-Chat שאינן תוספים מקבלות אירוע אינטראקציה בהתאם למיקום של הלחצן:
אם הכפתור נמצא בהודעה או בתיבת דו-שיח, אפליקציות ל-Chat שהן לא תוספים מקבלות
CARD_CLICKEDאירוע אינטראקציה שמכיל מידע על האינטראקציה. המטען הייעודי (payload) של אירועי האינטראקציה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. המטען הייעודי (payload) של אירוע האינטראקציה מכיל אובייקט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
Java
Apps Script
כשמשתמש לוחץ על הלחצן, אפליקציית Chat שלא מוגדרת כתוסף מקבלת אירוע אינטראקציה מסוג CARD_CLICKED, שממנו אפשר לקבל נתונים.
איך מגיבים לתשובות שנשלחו בטופס
בדוגמה הבאה, אפליקציית Chat שהיא לא תוסף שולחת הודעת טקסט כדי לאשר שהיא קיבלה בהצלחה טופס שנשלח מתיבת דו-שיח או מהודעת כרטיס:
Node.js
Python
Java
Apps Script
כדי לעבד ולסגור תיבת דו-שיח באפליקציית Chat שאינה תוסף, צריך להחזיר אובייקט ActionResponse שמציין אם רוצים לשלוח הודעת אישור, לעדכן את ההודעה או הכרטיס המקוריים או פשוט לסגור את תיבת הדו-שיח. במאמר סגירת תיבת דו-שיח מוסבר איך לעשות זאת.