במדריך הזה מוסבר איך אפליקציות ב-Google Chat יכולות לאסוף ולעבד מידע ממשתמשים על ידי יצירת נכסי קלט של טפסים בממשקים שמבוססים על כרטיסים.
אפליקציות צ'אט מבקשות מהמשתמשים מידע כדי לבצע פעולות ב-Chat או מחוץ ל-Chat, כולל בדרכים הבאות:
- לקבוע הגדרות. לדוגמה, כדי לאפשר למשתמשים להתאים אישית את הגדרות ההתראות או להגדיר ולהוסיף את אפליקציית Chat לקבוצה אחת או יותר מרחבים משותפים.
- יצירה או עדכון של מידע באפליקציות אחרות של Google Workspace. עבור למשל, לאפשר למשתמשים ליצור אירוע ביומן Google.
- המשתמשים יכולים לגשת למשאבים ולעדכן אותם באפליקציות או בשירותי אינטרנט אחרים. עבור לדוגמה, אפליקציית Chat יכולה לעזור למשתמשים לעדכן סטטוס של כרטיס תמיכה ישירות ממרחב ב-Chat.
דרישות מוקדמות
אפליקציית Google Chat עם תכונות אינטראקטיביות שפועלות. כדי ליצור את אפליקציית Chat האינטראקטיבית, תוכלו להשלים את אחד מהמדריכים הבאים למתחילים בארכיטקטורת האפליקציות שבה רוצים להשתמש:- שירות HTTP עם Google Cloud Functions
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
יצירת טפסים באמצעות כרטיסים
כדי לאסוף מידע, אפליקציות ל-Chat מעצבים טפסים ואת הנתונים שלהן, וליצור מהם קלפים. כדי להציג למשתמשים כרטיסים, אפליקציות Chat יכולות להשתמש בממשקי Chat הבאים:
- הודעות שמכילות כרטיס אחד או יותר.
- דפי בית, שהוא כרטיס שמופיע בכרטיסייה דף הבית בצ'אטים אישיים באפליקציית Chat.
- Dialogs, שהם כרטיסים שנפתחים בחלון חדש מהודעות ומדפי בית.
אפליקציות צ'אט יכולות ליצור את הכרטיסים באמצעות הווידג'טים הבאים:
ווידג'טים להזנת טופס שמבקשים מידע מהמשתמשים. לחלופין, אפשר הוספת אימות כדי ליצור ווידג'טים של קלט, כדי לוודא שהמשתמשים מזינים מידע ומעצבים אותו בצורה נכונה. אפליקציות צ'אט יכולות להשתמש בווידג'טים הבאים להזנת טפסים:
- קלטי טקסט (
textInput
) לטקסט חופשי או לטקסט מוצג. - מקורות קלט לבחירה (
selectionInput
) הם רכיבים בממשק המשתמש שאפשר לבחור בהם, כמו תיבות סימון, לחצני בחירה ותפריטים נפתחים. ווידג'טים של קלט שנבחר יכולים גם לאכלס פריטים ממקורות נתונים סטטיים או דינמיים. לדוגמה, משתמשים יכולים לבחור מתוך רשימה של מרחבים ב-Chat שהם חברים בהם. - בוררי תאריך ושעה (
dateTimePicker
) לרשומות של תאריך ושעה.
- קלטי טקסט (
ווידג'ט של לחצן כדי שהמשתמשים יוכלו לשלוח את הערכים שהם מזינים בכרטיס. אחרי שמשתמש ילחץ על הלחצן, אפליקציית Chat תוכל לעבד את המידע שהוא מקבל.
בתמונה הבאה מוצג כרטיס שמכיל שלושה סוגים שונים של קלט של תאריך ושעה:
לדוגמאות נוספות של ווידג'טים אינטראקטיביים שניתן להשתמש בהם כדי לאסוף מידע נוסף, ראה לעצב כרטיס אינטראקטיבי או תיבת דו-שיח.
קבלת נתונים מווידג'טים אינטראקטיביים
בכל פעם שמשתמשים לוחצים על לחצן, אפליקציות צ'אט מקבלות אירוע אינטראקציה מסוג CARD_CLICKED
שמכיל מידע על האינטראקציה. המטען הייעודי (Payload) של
אירועי אינטראקציה אחת (CARD_CLICKED
) מכילים common.formInputs
עם הערכים שהמשתמש מזין.
אפשר לאחזר את הערכים מהאובייקט
common.formInputs.WIDGET_NAME
, כאשר
WIDGET_NAME הוא השדה name
שציינת לווידג'ט.
הערכים מוחזרים כסוג נתונים ספציפי של הווידג'ט (המיוצג כאובייקט Inputs
).
בדוגמה הבאה, הכרטיס אוסף פרטים ליצירת קשר באמצעות טקסט
קלט, חלונית לבחירת תאריך וווידג'ט לקלט הבחירה:
{
"textInput": {
"name": "contactName",
"label": "First and last name",
"type": "SINGLE_LINE"
}
}, {
"dateTimePicker": {
"name": "contactBirthdate",
"label": "Birthdate",
"type": "DATE_ONLY"
}
}, {
"selectionInput": {
"name": "contactType",
"label": "Contact type",
"type": "RADIO_BUTTON",
"items": [
{
"text": "Work",
"value": "Work",
"selected": false
},
{
"text": "Personal",
"value": "Personal",
"selected": false
}
]
}
}
טיפול באירוע האינטראקציה
כשמשתמש מזין נתונים בכרטיס או בתיבת דו-שיח, באפליקציית Chat מתקבל אירוע אינטראקציה CARD_CLICKED
שמכיל את הערכים שהמשתמש מזין.
בקטע הבא מוצג חלק מאירוע אינטראקציה מסוג 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 מטפלת אירוע אינטראקציה כדי לקבל את הערכים שהמשתמשים מזינים בווידג'טים. בטבלה הבאה מוסבר איך לקבל את הערך של ווידג'ט קלט נתון בטופס. לכל ווידג'ט, בטבלה מוצגים סוג הנתונים שהווידג'ט מקבל, המיקום שבו הערך מאוחסן באירוע האינטראקציה וערך לדוגמה.
ווידג'ט להזנת קלט בטופס | סוג נתוני הקלט | ערך שהוזן מאירוע האינטראקציה | ערך לדוגמה |
---|---|---|---|
textInput |
stringInputs |
events.common.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
כדי לקבל את הערך הראשון או היחיד, events.common.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker שאפשר להזין רק תאריכים. |
dateInput |
events.common.formInputs.contactBirthdate.dateInput.msSinceEpoch . |
1000425600000 |
העברת נתונים לכרטיס אחר
אחרי שמשתמש שולח מידע מכרטיס, ייתכן שיהיה צורך להחזיר כרטיסים נוספים לביצוע אחת מהפעולות הבאות:
- כדי לעזור למשתמשים למלא טפסים ארוכים, כדאי ליצור קטעים נפרדים.
- המשתמשים יכולים לראות בתצוגה מקדימה ולאשר את המידע מהכרטיס הראשוני, כדי שהם יכולים לבדוק את התשובות שלהם לפני השליחה.
- לאכלס באופן דינמי את שאר החלקים בטופס. לדוגמה, כדי להנחות את של המשתמשים כדי ליצור פגישה, אפליקציית Chat להציג כרטיס ראשוני שבו מוצגת הסיבה לפגישה. ואז מאכלס כרטיס אחר שמציג שעות זמינות לפי סוג הפגישה.
כדי להעביר את קלט הנתונים מהכרטיס הראשוני, אפשר ליצור את הווידג'ט button
באמצעות actionParameters
שמכיל את name
של הווידג'ט ואת הערך שהמשתמש מזין, כפי שמוצג בדוגמה הבאה:
{
"buttonList": {
"buttons": [{
"text": "Submit",
"onClick": {
"action": {
"function": "openNextCard",
"parameters": [{
"key": "WIDGET_NAME",
"value": "USER_INPUT_VALUE"
}]
}
}
}]
}
}
כאשר WIDGET_NAME הוא ה-name
של הווידג'ט ו-USER_INPUT_VALUE הוא מה שהמשתמש מזין. לדוגמה, בשדה טקסט שמכיל את השם של אדם, שם הווידג'ט הוא contactName
וערך לדוגמה הוא Kai O
.
כשמשתמש לוחץ על הלחצן, אפליקציית Chat מקבלת
אירוע אינטראקציה אחד (CARD_CLICKED
). כדי לאחזר את הערכים, אפשר להשתמש בפונקציה
event.common.parameters
לאובייקט.
בדוגמה הבאה מוסבר איך מעבירים פרמטרים שמכילים נתוני קלט של משתמשים לפונקציה שפותחת את הכרטיס הבא:
Node.js
// Respond to button clicks on cards or dialogs
if (event.type === "CARD_CLICKED") {
// Open another card.
if (event.common.invokedFunction === "openNextCard") {
const parameters = event.common.parameters;
openNextCard(event);
}
}
Python
# Respond to button clicks on cards or dialogs
if request.get('type') == 'CARD_CLICKED':
if invoked_function := request.get('common', dict()).get('invokedFunction'):
if invoked_function == 'open_next_card':
parameters = request.get('common', dict()).get('parameters'),
return open_next_card(parameters)
Apps Script
// Respond to button clicks on cards or dialogs
function onCardClick(event) {
if (event.common.invokedFunction === "openNextCard") {
const parameters = event.common.parameters;
return openNextCard(parameters);
}
}
איך עונים לשליחת טופס
אחרי קבלת הנתונים מהודעה בכרטיס או מתיבת דו-שיח, אפליקציית Chat משיבה על ידי אישור קבלה או החזרת הודעת שגיאה.
בדוגמה הבאה, אפליקציית Chat שולחת הודעת טקסט כדי לאשר שהיא קיבלה טופס שנשלח מהודעה בכרטיס.
Apps Script
function submitCardForm(contactName, contactBirthdate, contactType) {
return {
"text": "You entered the following contact information:\n\n" +
"*Name:* " + contactName + "\n" +
"*Birthdate:* " + contactBirthdate + "\n" +
"*Type:* " + contactType
}
}
כדי לעבד ולסגור תיבת דו-שיח, מוחזר
ActionResponse
שמציין אם אתם רוצים לשלוח הודעת אישור, צריך לעדכן את
את ההודעה או את הכרטיס המקוריים, או פשוט לסגור את תיבת הדו-שיח. במאמר סגירה של תיבת דו-שיח מוסבר איך לעשות זאת.
פתרון בעיות
כשאפליקציית Google Chat או אפליקציית Google Chat הפונקציה card מחזירה שגיאה, בממשק של Chat מוצגת ההודעה "משהו השתבש". או "לא ניתן לעבד את הבקשה שלך". לפעמים בממשק המשתמש של Chat לא מציגה הודעות שגיאה, אבל אפליקציית Chat או והכרטיס מפיק תוצאה לא צפויה: לדוגמה, הודעה בכרטיס יופיעו.
יכול להיות שהודעת שגיאה לא תוצג בממשק המשתמש של Chat, אבל כשיומני השגיאות של אפליקציות Chat מופעלים, יהיו זמינות הודעות שגיאה תיאוריות ונתוני יומנים שיעזרו לכם לתקן את השגיאות. לקבלת עזרה בצפייה, לניפוי באגים ותיקון שגיאות: פתרון בעיות ותיקון שגיאות ב-Google Chat
נושאים קשורים
- לצפייה בדוגמה של מנהל אנשי הקשר, אפליקציית צ'אט שמבקשת מהמשתמשים למלא טופס ליצירת קשר מהודעות בכרטיסים ומחלוניות דו-שיח.
- פתיחת תיבות דו-שיח אינטראקטיביות