วิดเจ็ต SelectionInput
มีชุดรายการที่เลือกได้ เช่น ช่องทำเครื่องหมาย ปุ่มตัวเลือก สวิตช์ หรือเมนูแบบเลื่อนลง คุณสามารถใช้วิดเจ็ตนี้เพื่อรวบรวมข้อมูลที่กำหนดและที่เป็นมาตรฐานจากผู้ใช้ หากต้องการรวบรวมข้อมูลที่ไม่ได้กำหนดจากผู้ใช้ ให้ใช้วิดเจ็ต TextInput
แทน
วิดเจ็ต SelectionInput
รองรับคำแนะนำซึ่งช่วยให้ผู้ใช้ป้อนข้อมูลที่เป็นแบบเดียวกันและมีการดำเนินการที่จะเปลี่ยนแปลง ซึ่งก็คือ Actions
ที่เรียกใช้เมื่อมีการเปลี่ยนแปลงเกิดขึ้นในช่องป้อนข้อมูลการเลือก เช่น ผู้ใช้เลือกหรือยกเลิกการเลือกรายการ
แอปแชทจะรับและประมวลผลค่าของรายการที่เลือกได้ โปรดดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มที่หัวข้อรับข้อมูลแบบฟอร์ม
ตัวอย่าง
ส่วนนี้จะแสดงตัวอย่างของการ์ดที่ใช้วิดเจ็ต SelectionInput
ตัวอย่างใช้ข้อมูลอินพุตส่วนประเภทต่างๆ ดังนี้
ตัวอย่างที่ 1: ช่องทำเครื่องหมาย
กล่องโต้ตอบต่อไปนี้จะแสดงกล่องโต้ตอบที่ขอให้ผู้ใช้ระบุว่ารายชื่อติดต่อเป็นมืออาชีพหรือไม่ และ/หรือส่วนตัวด้วยวิดเจ็ต SelectionInput
ที่ใช้ช่องทำเครื่องหมาย
ตัวอย่างที่ 2: ปุ่มตัวเลือก
รายการต่อไปนี้จะแสดงกล่องโต้ตอบที่ขอให้ผู้ใช้ระบุว่ารายชื่อติดต่อเป็นมืออาชีพหรือส่วนตัวด้วยวิดเจ็ต SelectionInput
ที่ใช้ปุ่มตัวเลือก
ตัวอย่างที่ 3: สวิตช์
รายการต่อไปนี้จะแสดงกล่องโต้ตอบที่ขอให้ผู้ใช้ระบุว่ารายชื่อติดต่อเป็นมืออาชีพหรือส่วนตัวด้วยวิดเจ็ต SelectionInput
ที่ใช้สวิตช์
ตัวอย่างที่ 4: เมนูแบบเลื่อนลง
รายการต่อไปนี้จะแสดงกล่องโต้ตอบที่ขอให้ผู้ใช้ระบุว่ารายชื่อติดต่อเป็นมืออาชีพหรือส่วนตัวด้วยวิดเจ็ต SelectionInput
ที่ใช้เมนูแบบเลื่อนลง
ตัวอย่างที่ 5: เมนูแบบเลือกหลายรายการ
รายการต่อไปนี้จะแสดงกล่องโต้ตอบที่ขอให้ผู้ใช้เลือกรายชื่อติดต่อจากเมนูการเลือกหลายรายการ
แหล่งข้อมูลเพิ่มเติมสำหรับเมนูแบบเลือกหลายรายการ
ส่วนต่อไปนี้จะอธิบายวิธีใช้เมนูแบบเลือกหลายรายการเพื่อป้อนข้อมูลจากแหล่งที่มาแบบไดนามิก เช่น แอปพลิเคชัน Google Workspace หรือแหล่งข้อมูลภายนอก
แหล่งข้อมูลจาก Google Workspace
คุณป้อนข้อมูลสำหรับเมนูแบบเลือกหลายรายการได้จากแหล่งข้อมูลต่อไปนี้ใน Google Workspace
- ผู้ใช้ Google Workspace: คุณจะป้อนข้อมูลผู้ใช้ที่อยู่ในองค์กร Google Workspace เดียวกันได้เท่านั้น
- พื้นที่ใน Chat: ผู้ใช้ป้อนข้อมูลในเมนูแบบเลือกหลายรายการจะดูและเลือกพื้นที่ทำงานที่ตนอยู่ในองค์กร Google Workspace ได้เท่านั้น
หากต้องการใช้แหล่งข้อมูลของ Google Workspace คุณต้องระบุช่อง platformDataSource
คุณจะยกเว้นออบเจ็กต์ SectionItem
ประเภทอื่นๆ ได้ด้วย เนื่องจากรายการการเลือกเหล่านี้จะมาจาก 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
}
}
}
}
}
}
แหล่งข้อมูลนอก Google Workspace
นอกจากนี้ เมนูการเลือกหลายรายการยังเติมข้อมูลรายการจากแหล่งข้อมูลของบุคคลที่สามหรือแหล่งข้อมูลภายนอกได้ด้วย ตัวอย่างเช่น คุณสามารถใช้เมนูแบบเลือกหลายรายการเพื่อช่วยให้ผู้ใช้เลือกจากรายการโอกาสในการขายจากระบบการจัดการลูกค้าสัมพันธ์ (CRM) ได้
หากต้องการใช้แหล่งข้อมูลภายนอก ให้ใช้ช่อง externalDataSource
เพื่อระบุฟังก์ชันที่แสดงรายการจากแหล่งข้อมูล
หากต้องการลดคำขอที่ส่งไปยังแหล่งข้อมูลภายนอก คุณอาจรวมรายการที่แนะนำที่ปรากฏในเมนูการเลือกหลายรายการก่อนที่ผู้ใช้จะพิมพ์ในเมนูได้ เช่น คุณอาจป้อนข้อมูลของรายชื่อติดต่อที่ค้นหาล่าสุดสำหรับผู้ใช้ หากต้องการป้อนข้อมูลรายการที่แนะนำจากแหล่งข้อมูลภายนอก ให้ระบุออบเจ็กต์ SelectionItem
โค้ดต่อไปนี้แสดงเมนูแบบเลือกหลายรายการจากชุดรายชื่อติดต่อภายนอกสำหรับผู้ใช้ เมนูจะแสดงรายชื่อติดต่อ 1 รายการโดยค่าเริ่มต้น และเรียกใช้ฟังก์ชัน getContacts
เพื่อเรียกและป้อนข้อมูลรายการจากแหล่งข้อมูลภายนอก
JSON
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 5,
"multiSelectMinQueryLength": 2,
"externalDataSource": {
"function": "getContacts"
},
"items": [
{
"text": "Contact 3",
"value": "contact-3",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"bottomText": "Contact three description",
"selected": false
}
]
}
}
สำหรับแหล่งข้อมูลภายนอก คุณยังเติมข้อความอัตโนมัติให้กับรายการที่ผู้ใช้เริ่มพิมพ์ในเมนูการเลือกหลายรายการได้ด้วย เช่น หากผู้ใช้เริ่มพิมพ์ Atl
สำหรับเมนูที่แสดงขึ้นเป็นเมืองในสหรัฐอเมริกา แอป Chat จะแนะนํา Atlanta
โดยอัตโนมัติได้ก่อนที่ผู้ใช้จะพิมพ์เสร็จ คุณจะเติมข้อความอัตโนมัติได้สูงสุด 100 รายการ
หากต้องการเติมข้อความอัตโนมัติให้กับรายการ คุณจะต้องสร้างฟังก์ชันที่ค้นหาแหล่งข้อมูลภายนอกและแสดงรายการเมื่อผู้ใช้พิมพ์ในเมนูเลือกหลายรายการ ฟังก์ชันดังกล่าวต้องมีลักษณะดังนี้
- ส่งออบเจ็กต์เหตุการณ์ที่แสดงการโต้ตอบของผู้ใช้กับเมนู
- ระบุว่าค่า
invokedFunction
ของเหตุการณ์การโต้ตอบตรงกับฟังก์ชันจากช่องexternalDataSource
- เมื่อฟังก์ชันตรงกัน ให้แสดงรายการที่แนะนำจากแหล่งข้อมูลภายนอก หากต้องการแนะนำรายการตามสิ่งที่ผู้ใช้พิมพ์ ให้รับค่าสำหรับคีย์
autocomplete_widget_query
ค่านี้แสดงถึงสิ่งที่ผู้ใช้พิมพ์ในเมนู
โค้ดต่อไปนี้จะเติมข้อความอัตโนมัติจากรายการจากแหล่งข้อมูลภายนอก จากตัวอย่างก่อนหน้านี้ แอป Chat จะแนะนำรายการโดยอิงตามเวลาที่มีการทริกเกอร์ฟังก์ชัน getContacts
ดังนี้
Apps Script
Node.js
การแสดงและช่อง JSON
การแสดง JSON |
---|
{ "name": string, "label": string, "type": enum ( |
ช่อง | |
---|---|
name
|
ชื่อที่ระบุอินพุตการเลือกในเหตุการณ์อินพุตแบบฟอร์ม โปรดดูรายละเอียดเกี่ยวกับการทํางานกับอินพุตของแบบฟอร์มที่หัวข้อรับข้อมูลแบบฟอร์ม |
label
|
ข้อความที่ปรากฏเหนือช่องป้อนข้อมูลการเลือกในอินเทอร์เฟซผู้ใช้ ระบุข้อความที่ช่วยให้ผู้ใช้ป้อนข้อมูลที่แอปของคุณต้องการ เช่น หากผู้ใช้เลือกความเร่งด่วนของตั๋วงานจากเมนูแบบเลื่อนลง ป้ายกำกับอาจเป็น "ความเร่งด่วน" หรือ "เลือกความเร่งด่วน" |
type
|
ประเภทของรายการที่แสดงต่อผู้ใช้ในวิดเจ็ต |
items[]
|
อาร์เรย์ของรายการที่เลือกได้ ตัวอย่างเช่น ปุ่มตัวเลือกหรือช่องทำเครื่องหมายต่างๆ รองรับสูงสุด 100 รายการ |
onChangeAction
|
หากระบุไว้ ระบบจะส่งแบบฟอร์มนี้เมื่อการเลือกมีการเปลี่ยนแปลง หากไม่ได้ระบุไว้ คุณต้องระบุปุ่มแยกต่างหากที่ใช้ส่งแบบฟอร์ม โปรดดูรายละเอียดเกี่ยวกับการทํางานกับอินพุตของแบบฟอร์มที่หัวข้อรับข้อมูลแบบฟอร์ม |
multiSelectMaxSelectedItems
|
สำหรับเมนูแบบเลือกหลายรายการ จำนวนรายการสูงสุดที่ผู้ใช้เลือกได้ ค่าต่ำสุดคือ 1 รายการ หากไม่ระบุ ค่าเริ่มต้นจะเป็น 3 รายการ |
multiSelectMinQueryLength
|
สำหรับเมนูแบบเลือกหลายรายการ จำนวนอักขระของข้อความที่ผู้ใช้ป้อนก่อนที่การค้นหาในแอป Chat จะเติมข้อความอัตโนมัติและแสดงรายการที่แนะนำในเมนู หากไม่ระบุ ค่าเริ่มต้นจะเป็น 0 อักขระสําหรับแหล่งข้อมูลแบบคงที่ และ 3 อักขระสําหรับแหล่งข้อมูลภายนอก |
ช่องการรวม multi_select_data_source แอปแชทเท่านั้น สำหรับเมนูการเลือกหลายรายการ แหล่งข้อมูลที่สร้างรายการที่เลือก
multi_select_data_source
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
|
|
externalDataSource
|
แหล่งข้อมูลภายนอก เช่น ฐานข้อมูลเชิงสัมพันธ์ |
platformDataSource
|
แหล่งข้อมูลจาก Google Workspace |
SelectionType
Enum | |
---|---|
CHECK_BOX
|
ชุดช่องทำเครื่องหมาย ผู้ใช้เลือกช่องทำเครื่องหมายได้อย่างน้อย 1 ช่อง |
RADIO_BUTTON
|
ชุดปุ่มตัวเลือก ผู้ใช้เลือกปุ่มตัวเลือกได้ 1 ปุ่ม |
SWITCH
|
ชุดสวิตช์ ผู้ใช้เปิดสวิตช์ได้อย่างน้อย 1 รายการ |
DROPDOWN
|
เมนูแบบเลื่อนลง ผู้ใช้เลือกได้ 1 รายการจากเมนู |
MULTI_SELECT
|
รองรับในแอปแชท แต่ไม่รองรับส่วนเสริมของ Google Workspace เมนูการเลือกหลายรายการสำหรับข้อมูลแบบคงที่หรือแบบไดนามิก ผู้ใช้จะเลือกอย่างน้อย 1 รายการจากแถบเมนู ผู้ใช้ยังป้อนค่าเพื่อป้อนข้อมูลแบบไดนามิกได้ด้วย ตัวอย่างเช่น ผู้ใช้เริ่มพิมพ์ชื่อของพื้นที่ใน Google Chat แล้ววิดเจ็ตจะแนะนำพื้นที่ทำงานนั้นโดยอัตโนมัติ หากต้องการเติมข้อมูลรายการสำหรับเมนูการเลือกหลายรายการ คุณสามารถใช้แหล่งข้อมูลประเภทใดประเภทหนึ่งต่อไปนี้
ดูตัวอย่างวิธีใช้เมนูแบบเลือกหลายรายการได้ที่
หน้าวิดเจ็ต |
SelectionItem
การแสดง JSON |
---|
{ "text": string, "value": string, "selected": boolean, "startIconUri": string, "bottomText": string } |
ช่อง | |
---|---|
text
|
ข้อความที่ระบุหรืออธิบายรายการให้ผู้ใช้ทราบ |
value
|
ค่าที่เชื่อมโยงกับรายการนี้ ไคลเอ็นต์ควรใช้ค่านี้เป็นค่าอินพุตแบบฟอร์ม โปรดดูรายละเอียดเกี่ยวกับการทํางานกับอินพุตของแบบฟอร์มที่หัวข้อรับข้อมูลแบบฟอร์ม |
selected
|
ระบุว่ารายการจะถูกเลือกโดยค่าเริ่มต้นหรือไม่ หากอินพุตการเลือกยอมรับเพียงค่าเดียว (เช่น สําหรับปุ่มตัวเลือกหรือเมนูแบบเลื่อนลง) ให้ตั้งค่าช่องนี้สําหรับรายการเดียวเท่านั้น |
startIconUri
|
สำหรับเมนูแบบเลือกหลายรายการ URL สำหรับไอคอนที่แสดงอยู่ข้างช่อง |
bottomText
|
สำหรับเมนูแบบเลือกหลายรายการ จะมีคำอธิบายข้อความหรือป้ายกำกับที่แสดงใต้ช่อง |
การดำเนินการ
การดำเนินการที่อธิบายลักษณะการทำงานเมื่อส่งแบบฟอร์ม เช่น เรียกใช้สคริปต์ Apps Script เพื่อจัดการกับแบบฟอร์ม หากมีการทริกเกอร์การดำเนินการ ระบบจะส่งค่าของแบบฟอร์มไปยังเซิร์ฟเวอร์
การแสดง JSON |
---|
{ "function": string, "parameters": [ { object ( |
ช่อง | |
---|---|
function
|
ฟังก์ชันที่กำหนดเองที่จะเรียกใช้เมื่อมีการคลิกองค์ประกอบที่มีหรือเปิดใช้งานไม่ว่าจะอย่างไรก็ตาม ดูตัวอย่างการใช้งานได้ที่สร้างการ์ดแบบอินเทอร์แอกทีฟ |
parameters[]
|
รายการพารามิเตอร์การกระทำ |
loadIndicator
|
ระบุสัญญาณบอกสถานะการโหลดที่การดำเนินการดังกล่าวแสดงขณะสร้างคำกระตุ้นการตัดสินใจ |
persistValues
|
ระบุว่าค่าของแบบฟอร์มจะยังคงอยู่หลังจากการดำเนินการหรือไม่ ค่าเริ่มต้นคือ
หากเป็น
หากเป็น |
interaction
|
ไม่บังคับ ต้องระบุเมื่อเปิดกล่องโต้ตอบ สิ่งที่ควรทำเพื่อตอบสนองต่อการโต้ตอบกับผู้ใช้ เช่น การที่ผู้ใช้คลิกปุ่มในการ์ดข้อความ
หากไม่ระบุ แอปจะตอบสนองด้วยการเรียกใช้
เมื่อระบุ รองรับในแอปแชท แต่ไม่รองรับส่วนเสริมของ Google Workspace หากระบุไว้สำหรับส่วนเสริม การ์ดทั้งหมดจะถูกนำออกและจะไม่แสดงในไคลเอ็นต์ |
ActionParameter
รายการพารามิเตอร์สตริงที่จะนำมาใช้เมื่อมีการเรียกใช้เมธอดการดำเนินการ ตัวอย่างเช่น ลองใช้ปุ่มเลื่อนการแจ้งเตือน 3 ปุ่ม ได้แก่ ปิดเสียงเตือนชั่วคราวตอนนี้ ปิดเสียงเตือนชั่วคราว 1 วัน หรือเลื่อนการปลุกสัปดาห์หน้า คุณอาจใช้ action method = snooze()
เพื่อส่งประเภทการหยุดชั่วคราวและเวลาหยุดชั่วคราวในรายการพารามิเตอร์สตริง
ดูข้อมูลเพิ่มเติมได้ใน CommonEventObject
การแสดง JSON |
---|
{ "key": string, "value": string } |
ช่อง | |
---|---|
key
|
ชื่อพารามิเตอร์สำหรับสคริปต์การดำเนินการ |
value
|
ค่าของพารามิเตอร์ |
LoadIndicator
ระบุสัญญาณบอกสถานะการโหลดที่การดำเนินการดังกล่าวแสดงขณะสร้างคำกระตุ้นการตัดสินใจ
Enum | |
---|---|
SPINNER
|
แสดงไอคอนหมุนเพื่อระบุว่ากำลังโหลดเนื้อหา |
NONE
|
ไม่มีอะไรปรากฏขึ้น |
การโต้ตอบ
ไม่บังคับ ต้องระบุเมื่อเปิดกล่องโต้ตอบ
สิ่งที่ควรทำเพื่อตอบสนองต่อการโต้ตอบกับผู้ใช้ เช่น การที่ผู้ใช้คลิกปุ่มในการ์ดข้อความ
หากไม่ระบุ แอปจะตอบสนองด้วยการเรียกใช้ action
เช่น การเปิดลิงก์หรือเรียกใช้ฟังก์ชันตามปกติ
เมื่อระบุ interaction
แอปจะตอบสนองแบบอินเทอร์แอกทีฟแบบพิเศษได้ เช่น เมื่อตั้งค่า
interaction
เป็น
OPEN_DIALOG
แอปจะเปิดกล่องโต้ตอบได้
เมื่อระบุแล้ว ระบบจะไม่แสดงสัญญาณบอกสถานะการโหลด
รองรับในแอปแชท แต่ไม่รองรับส่วนเสริมของ Google Workspace หากระบุไว้สำหรับส่วนเสริม การ์ดทั้งหมดจะถูกนำออกและจะไม่แสดงในไคลเอ็นต์
Enum | |
---|---|
INTERACTION_UNSPECIFIED
|
ค่าเริ่มต้น action ทำงานตามปกติ
|
OPEN_DIALOG
|
เปิด กล่องโต้ตอบ ซึ่งเป็นอินเทอร์เฟซแบบการ์ดในหน้าต่างที่แอป Chat ใช้เพื่อโต้ตอบกับผู้ใช้ รองรับโดยแอป Chat เท่านั้นเมื่อมีการคลิกปุ่มบนข้อความการ์ด ส่วนเสริมของ Google Workspace ไม่รองรับ หากระบุไว้สำหรับส่วนเสริม การ์ดทั้งหมดจะถูกนำออกและจะไม่แสดงในไคลเอ็นต์ |
แก้ปัญหา
เมื่อแอป Google Chat หรือการ์ดแสดงข้อผิดพลาด อินเทอร์เฟซ Chat จะแสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ดำเนินการตามคำขอของคุณไม่ได้" บางครั้ง UI ของ Chat ไม่แสดงข้อความแสดงข้อผิดพลาด แต่แอปหรือการ์ด Chat อาจให้ผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความการ์ดอาจไม่ปรากฏ
แม้ว่าข้อความแสดงข้อผิดพลาดอาจไม่แสดงใน UI ของ Chat แต่ก็มีข้อมูลบันทึกที่สื่อความหมายและข้อมูลบันทึกเพื่อช่วยให้คุณแก้ไขข้อผิดพลาดเมื่อเปิดการบันทึกข้อผิดพลาดสําหรับแอป Chat ไว้ หากต้องการความช่วยเหลือในการดู แก้ไขข้อบกพร่อง และแก้ไขข้อผิดพลาด โปรดดูหัวข้อแก้ปัญหาและแก้ไขข้อผิดพลาดของ Google Chat