Card
อินเทอร์เฟซของการ์ดที่แสดงในข้อความ Google Chat หรือส่วนเสริมของ Google Workspace
การ์ดรองรับเลย์เอาต์ที่กำหนด องค์ประกอบ UI แบบอินเทอร์แอกทีฟ เช่น ปุ่ม และสื่อสมบูรณ์อย่างรูปภาพ ใช้การ์ดเพื่อนำเสนอข้อมูลโดยละเอียด รวบรวมข้อมูลจากผู้ใช้ และแนะนำผู้ใช้ให้ไปยังขั้นตอนถัดไป
หากต้องการดูวิธีสร้างการ์ด โปรดดูเอกสารประกอบต่อไปนี้
- สำหรับแอป Google Chat โปรดดูหัวข้อออกแบบ UI ที่เป็นแบบไดนามิก อินเทอร์แอกทีฟ และสอดคล้องกันด้วยการ์ด
- สำหรับส่วนเสริมของ Google Workspace โปรดดู อินเทอร์เฟซที่ใช้การ์ด
ตัวอย่าง: ข้อความการ์ดสำหรับแอป Google Chat
หากต้องการสร้างข้อความการ์ดตัวอย่างใน Google Chat ให้ใช้ JSON ต่อไปนี้
{
"cardsV2": [
{
"cardId": "unique-card-id",
"card": {
"header": {
"title": "Sasha",
"subtitle": "Software Engineer",
"imageUrl":
"https://developers.google.com/chat/images/quickstart-app-avatar.png",
"imageType": "CIRCLE",
"imageAltText": "Avatar for Sasha",
},
"sections": [
{
"header": "Contact Info",
"collapsible": true,
"uncollapsibleWidgetsCount": 1,
"widgets": [
{
"decoratedText": {
"startIcon": {
"knownIcon": "EMAIL",
},
"text": "sasha@example.com",
}
},
{
"decoratedText": {
"startIcon": {
"knownIcon": "PERSON",
},
"text": "<font color=\"#80e27e\">Online</font>",
},
},
{
"decoratedText": {
"startIcon": {
"knownIcon": "PHONE",
},
"text": "+1 (555) 555-1234",
}
},
{
"buttonList": {
"buttons": [
{
"text": "Share",
"onClick": {
"openLink": {
"url": "https://example.com/share",
}
}
},
{
"text": "Edit",
"onClick": {
"action": {
"function": "goToView",
"parameters": [
{
"key": "viewType",
"value": "EDIT",
}
],
}
}
},
],
}
},
],
},
],
},
}
],
}
การแสดง JSON |
---|
{ "header": { object ( |
ช่อง | |
---|---|
header
|
ส่วนหัวของการ์ด ปกติแล้วส่วนหัวจะประกอบด้วยรูปภาพนำหน้าและชื่อ ส่วนหัวจะปรากฏที่ด้านบนของการ์ดเสมอ |
sections[]
|
มีคอลเล็กชันวิดเจ็ต แต่ละส่วนมีส่วนหัวที่ไม่บังคับของตัวเอง ส่วนต่างๆ จะแยกดูด้วยเส้นแบ่ง ดูตัวอย่างในแอป Google Chat ได้ที่ส่วนการ์ด |
sectionDividerStyle
|
รูปแบบตัวแบ่งระหว่างส่วนต่างๆ |
cardActions[]
|
การดำเนินการของการ์ด ระบบจะเพิ่มการทำงานลงในเมนูแถบเครื่องมือของการ์ด
เนื่องจากการ์ดของแอป Chat ไม่มีแถบเครื่องมือ แอป Chat จึงไม่รองรับ
ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างเมนูการทำงานของการ์ดที่มีตัวเลือก
|
name
|
ชื่อบัตร ใช้เป็นตัวระบุการ์ดในการนำทางการ์ด เนื่องจากแอปใน Chat ไม่รองรับการนำทางด้วยการ์ด จึงไม่สนใจช่องนี้ |
fixedFooter
|
ส่วนท้ายแบบคงที่ซึ่งแสดงอยู่ที่ด้านล่างของการ์ดนี้
การตั้งค่า รองรับส่วนเสริมของ Google Workspace และแอป Chat สำหรับแอป Chat คุณสามารถใช้ส่วนท้ายที่แก้ไขแล้วในกล่องโต้ตอบ แต่จะใช้กับข้อความการ์ดไม่ได้ |
displayStyle
|
ในส่วนเสริมของ Google Workspace ให้กำหนดพร็อพเพอร์ตี้การแสดงผลของ ไม่รองรับในแอป Chat |
peekCardHeader
|
เมื่อแสดงเนื้อหาตามบริบท ส่วนหัวของการ์ด Peek จะทำหน้าที่เป็นตัวยึดตําแหน่งเพื่อให้ผู้ใช้เดินหน้าไปมาระหว่างการ์ดในหน้าแรกและการ์ดบริบทได้ ไม่รองรับในแอป Chat |
CardHeader
แสดงส่วนหัวของการ์ด ดูตัวอย่างในแอป Google Chat ได้ที่ส่วนหัวของการ์ด
การแสดง JSON |
---|
{
"title": string,
"subtitle": string,
"imageType": enum (
|
ช่อง | |
---|---|
title
|
ต้องระบุ ชื่อของส่วนหัวของการ์ด ส่วนหัวมีความสูงคงที่ หากมีการระบุทั้งชื่อเรื่องและชื่อเรื่องรอง แต่ละบรรทัดจะยาวสูงสุด 1 บรรทัด หากระบุเฉพาะชื่อ ก็จะปรากฏทั้ง 2 บรรทัด |
subtitle
|
ชื่อรองของส่วนหัวของการ์ด หากระบุไว้ จะแสดงในบรรทัดของตัวเองใต้ |
imageType
|
รูปร่างที่ใช้ครอบตัดรูปภาพ |
imageUrl
|
HTTPS URL ของรูปภาพในส่วนหัวของการ์ด |
imageAltText
|
ข้อความสำรองของรูปภาพนี้ที่ใช้สำหรับการเข้าถึง |
ImageType
รูปร่างที่ใช้ครอบตัดรูปภาพ
Enum | |
---|---|
SQUARE
|
ค่าเริ่มต้น ใช้มาสก์สี่เหลี่ยมจัตุรัสกับรูปภาพ เช่น รูปภาพขนาด 4x3 จะกลายเป็น 3x3 |
CIRCLE
|
ใช้มาสก์รูปวงกลมกับรูปภาพ เช่น รูปภาพขนาด 4x3 จะกลายเป็นวงกลมที่มีเส้นผ่านศูนย์กลาง 3 |
ส่วน
ส่วนจะมีคอลเล็กชันวิดเจ็ตที่แสดงผลในแนวตั้งตามลำดับที่ระบุไว้
การแสดง JSON |
---|
{
"header": string,
"widgets": [
{
object (
|
ช่อง | |
---|---|
header
|
ข้อความที่ปรากฏที่ด้านบนของส่วน สนับสนุนข้อความที่มีการจัดรูปแบบ HTML แบบง่าย ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดรูปแบบข้อความได้ที่การจัดรูปแบบข้อความในแอป Google Chat และการจัดรูปแบบข้อความในส่วนเสริมของ Google Workspace |
widgets[]
|
วิดเจ็ตทั้งหมดในส่วนนี้ ต้องมีวิดเจ็ตอย่างน้อย 1 รายการ |
collapsible
|
ระบุว่าส่วนนี้ยุบได้หรือไม่ ส่วนที่ยุบได้จะซ่อนวิดเจ็ตบางส่วนหรือทั้งหมด แต่ผู้ใช้จะขยายส่วนดังกล่าวเพื่อแสดงวิดเจ็ตที่ซ่อนอยู่ได้โดยคลิกแสดงเพิ่มเติม ผู้ใช้จะซ่อนวิดเจ็ตอีกครั้งได้โดยคลิกแสดงน้อยลง
หากต้องการทราบว่าวิดเจ็ตใดซ่อนอยู่ ให้ระบุ |
uncollapsibleWidgetsCount
|
จำนวนวิดเจ็ตที่ไม่สามารถยุบได้ซึ่งยังคงมองเห็นได้แม้ว่าจะยุบส่วนอยู่
ตัวอย่างเช่น เมื่อส่วนมีวิดเจ็ต 5 รายการและตั้งค่า |
วิดเจ็ต
โดยการ์ดแต่ละใบจะประกอบด้วยวิดเจ็ต
วิดเจ็ตคือวัตถุแบบผสมที่แสดงข้อความ รูปภาพ ปุ่ม และวัตถุประเภทอื่นๆ ได้
การแสดง JSON |
---|
{ "horizontalAlignment": enum ( |
ช่อง | |
---|---|
horizontalAlignment
|
ระบุว่าจะให้วิดเจ็ตอยู่ทางซ้าย ขวา หรือตรงกลางของคอลัมน์ |
ช่องการรวม data วิดเจ็ตจะมีรายการต่อไปนี้ได้เพียง 1 รายการ คุณสามารถใช้ช่องวิดเจ็ตหลายช่องเพื่อแสดงรายการเพิ่มเติมได้
data
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
|
|
textParagraph
|
แสดงย่อหน้าข้อความ สนับสนุนข้อความที่มีการจัดรูปแบบ HTML แบบง่าย ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดรูปแบบข้อความได้ที่การจัดรูปแบบข้อความในแอป Google Chat และการจัดรูปแบบข้อความในส่วนเสริมของ Google Workspace เช่น JSON ต่อไปนี้จะสร้างข้อความตัวหนา
|
image
|
แสดงรูปภาพ ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างรูปภาพที่มีข้อความสำรอง
|
decoratedText
|
แสดงรายการข้อความที่มีการตกแต่ง ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างวิดเจ็ตข้อความที่ตกแต่งอย่างสวยงามซึ่งแสดงอีเมล
|
buttonList
|
รายการปุ่ม ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างปุ่ม 2 ปุ่ม ปุ่มแรกคือปุ่มข้อความสีฟ้า และปุ่มที่สองเป็นปุ่มรูปภาพที่เปิดลิงก์ดังต่อไปนี้
|
textInput
|
แสดงกล่องข้อความที่ผู้ใช้พิมพ์ลงไปได้ ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างอินพุตข้อความสำหรับอีเมล
อีกตัวอย่างหนึ่งคือ JSON ต่อไปนี้จะสร้างอินพุตข้อความสำหรับภาษาโปรแกรมที่มีคำแนะนำแบบคงที่
|
selectionInput
|
แสดงตัวควบคุมการเลือกที่ให้ผู้ใช้เลือกรายการได้ การควบคุมการเลือกอาจเป็นช่องทำเครื่องหมาย ปุ่มตัวเลือก สวิตช์ หรือเมนูแบบเลื่อนลง ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างเมนูแบบเลื่อนลงที่ให้ผู้ใช้เลือกขนาดได้
|
dateTimePicker
|
แสดงวิดเจ็ตที่ให้ผู้ใช้ป้อนวันที่ เวลา หรือวันที่และเวลา ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างเครื่องมือเลือกวันที่และเวลาเพื่อกำหนดเวลาการนัดหมาย
|
divider
|
แสดงเส้นแบ่งแนวนอนระหว่างวิดเจ็ต ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างตัวแบ่ง
|
grid
|
แสดงตารางกริดที่มีคอลเล็กชันรายการ ตารางกริดรองรับคอลัมน์และรายการกี่รายการก็ได้ จำนวนแถวจะกำหนดโดยขอบเขตบนของจำนวนรายการหารด้วยจำนวนคอลัมน์ ตารางกริดที่มี 10 รายการ 2 คอลัมน์จะมี 5 แถว ตารางกริดที่มี 11 รายการ 2 คอลัมน์จะมี 6 แถว เช่น JSON ต่อไปนี้จะสร้างตารางกริดแบบ 2 คอลัมน์ที่มีรายการเดียว
|
columns
|
แสดงได้สูงสุด 2 คอลัมน์
หากต้องการรวมมากกว่า 2 คอลัมน์หรือใช้แถว ให้ใช้วิดเจ็ต ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างคอลัมน์ 2 คอลัมน์โดยที่แต่ละคอลัมน์มีย่อหน้าข้อความ
|
TextParagraph
ย่อหน้าของข้อความที่รองรับการจัดรูปแบบ ดูตัวอย่างในแอป Google Chat ได้ที่ย่อหน้าข้อความ ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดรูปแบบข้อความได้ที่การจัดรูปแบบข้อความในแอป Google Chat และการจัดรูปแบบข้อความในส่วนเสริมของ Google Workspace
การแสดง JSON |
---|
{ "text": string } |
ช่อง | |
---|---|
text
|
ข้อความที่แสดงในวิดเจ็ต |
รูปภาพ
รูปภาพที่มีการระบุโดย URL และมีการดำเนินการ onClick
ได้ ดูตัวอย่างได้ที่รูปภาพ
การแสดง JSON |
---|
{
"imageUrl": string,
"onClick": {
object (
|
ช่อง | |
---|---|
imageUrl
|
HTTPS URL ที่โฮสต์รูปภาพ เช่น
|
onClick
|
เมื่อผู้ใช้คลิกรูปภาพ การคลิกจะทริกเกอร์การดำเนินการนี้ |
altText
|
ข้อความสำรองของรูปภาพนี้ที่ใช้สำหรับการเข้าถึง |
OnClick
แสดงถึงวิธีการตอบสนองเมื่อผู้ใช้คลิกองค์ประกอบแบบอินเทอร์แอกทีฟในการ์ด เช่น ปุ่ม
การแสดง JSON |
---|
{ // Union field |
ช่อง | |
---|---|
ช่องการรวม
|
|
action
|
หากระบุไว้ |
openLink
|
หากระบุไว้ |
openDynamicLinkAction
|
ส่วนเสริมจะทริกเกอร์การดำเนินการนี้เมื่อการดำเนินการจำเป็นต้องเปิดลิงก์ ซึ่งแตกต่างจาก |
card
|
การ์ดใหม่จะพุชไปยังสแต็กการ์ดหลังจากคลิกระบุไว้แล้ว รองรับส่วนเสริมของ Google Workspace แต่ใช้ไม่ได้กับแอป Google Chat |
การดำเนินการ
การดำเนินการที่อธิบายลักษณะการทำงานเมื่อส่งแบบฟอร์ม เช่น เรียกใช้สคริปต์ Apps Script เพื่อจัดการแบบฟอร์มได้ หากมีการทริกเกอร์การดำเนินการ ระบบจะส่งค่าของแบบฟอร์มไปยังเซิร์ฟเวอร์
การแสดง JSON |
---|
{ "function": string, "parameters": [ { object ( |
ช่อง | |
---|---|
function
|
ฟังก์ชันที่กำหนดเองที่จะเรียกใช้เมื่อมีการคลิกองค์ประกอบที่มีหรือเปิดใช้งานไม่ถูกพร้อมกัน ตัวอย่างการใช้งานได้ที่สร้างการ์ดแบบอินเทอร์แอกทีฟ |
parameters[]
|
รายการพารามิเตอร์การดำเนินการ |
loadIndicator
|
ระบุสัญญาณบอกสถานะการโหลดที่การดำเนินการจะแสดงขณะเรียกใช้การดำเนินการ |
persistValues
|
ระบุว่าค่าของแบบฟอร์มจะยังคงอยู่หลังจากการดำเนินการหรือไม่ โดยมีค่าเริ่มต้นเป็น
หากเป็น
หากเป็น |
interaction
|
ไม่บังคับ ต้องระบุเมื่อเปิดกล่องโต้ตอบ สิ่งที่ควรทำเพื่อตอบสนองการโต้ตอบกับผู้ใช้ เช่น ผู้ใช้คลิกปุ่มในข้อความการ์ด
หากไม่ระบุ แอปจะตอบสนองด้วยการเรียกใช้
เมื่อระบุ รองรับในแอป Chat แต่ไม่รองรับส่วนเสริมของ 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
แอปจะเปิดกล่องโต้ตอบได้
เมื่อระบุแล้ว สัญญาณบอกสถานะการโหลดจะไม่แสดงขึ้น
รองรับในแอป Chat แต่ไม่รองรับส่วนเสริมของ Google Workspace หากระบุไว้สำหรับส่วนเสริม ระบบจะนำการ์ดทั้งใบออกและจะไม่แสดงในไคลเอ็นต์
Enum | |
---|---|
INTERACTION_UNSPECIFIED
|
ค่าเริ่มต้น action จะทำงานตามปกติ
|
OPEN_DIALOG
|
เปิด กล่องโต้ตอบ ซึ่งเป็นอินเทอร์เฟซแบบการ์ดในหน้าต่างที่แอป Chat ใช้เพื่อโต้ตอบกับผู้ใช้ รองรับเฉพาะในแอป Chat เพื่อเป็นการตอบสนองต่อการคลิกปุ่มในข้อความบนการ์ด ส่วนเสริมของ Google Workspace ไม่รองรับ หากระบุไว้สำหรับส่วนเสริม ระบบจะนำการ์ดทั้งใบออกและจะไม่แสดงในไคลเอ็นต์ |
OpenLink
แสดงถึงเหตุการณ์ onClick
ที่เปิดไฮเปอร์ลิงก์
การแสดง JSON |
---|
{ "url": string, "openAs": enum ( |
ช่อง | |
---|---|
url
|
URL ที่จะเปิด |
openAs
|
วิธีเปิดลิงก์ ไม่รองรับในแอป Chat |
onClose
|
ลูกค้าลืมลิงก์หลังจากที่เปิดลิงก์นั้น หรือสังเกตการณ์จนกว่าหน้าต่างจะปิดลง ไม่รองรับในแอป Chat |
OpenAs
เมื่อการดำเนินการ
OnClick
เปิดลิงก์ ไคลเอ็นต์จะเปิดเป็นหน้าต่างขนาดเต็ม (หากเป็นเฟรมที่ลูกค้าใช้) หรือการวางซ้อน (เช่น ป๊อปอัป) ก็ได้ การติดตั้งใช้งานจะขึ้นอยู่กับความสามารถของแพลตฟอร์มไคลเอ็นต์ และระบบอาจไม่สนใจค่าที่เลือกหากไคลเอ็นต์ไม่รองรับ
ไคลเอ็นต์ทั้งหมดรองรับ FULL_SIZE
รองรับส่วนเสริมของ Google Workspace แต่ใช้ไม่ได้กับแอป Google Chat
Enum | |
---|---|
FULL_SIZE
|
ลิงก์จะเปิดเป็นหน้าต่างขนาดเต็ม (หากเป็นเฟรมที่ลูกค้าใช้) |
OVERLAY
|
ลิงก์จะเปิดเป็นโฆษณาซ้อนทับ เช่น ป๊อปอัป |
OnClose
สิ่งที่ไคลเอ็นต์ทำเมื่อปิดลิงก์ที่เปิดโดยการดำเนินการ OnClick
การนำไปใช้งานจะขึ้นอยู่กับความสามารถของแพลตฟอร์มของลูกค้า ตัวอย่างเช่น เว็บเบราว์เซอร์อาจเปิดลิงก์ในหน้าต่างป๊อปอัปด้วยตัวแฮนเดิล OnClose
หากมีการตั้งค่าตัวแฮนเดิล OnOpen
และ OnClose
และแพลตฟอร์มไคลเอ็นต์ไม่รองรับทั้ง 2 ค่า OnClose
จะมีความสำคัญเหนือกว่า
รองรับส่วนเสริมของ Google Workspace แต่ใช้ไม่ได้กับแอป Google Chat
Enum | |
---|---|
NOTHING
|
ค่าเริ่มต้น บัตรจะไม่โหลดซ้ำ ไม่มีอะไรเกิดขึ้น |
RELOAD
|
โหลดการ์ดซ้ำหลังจากที่หน้าต่างย่อยปิดลง
หากใช้ร่วมกับ |
DecoratedText
วิดเจ็ตที่แสดงข้อความพร้อมการตกแต่งเพิ่มเติม เช่น ป้ายกำกับด้านบนหรือด้านล่างข้อความ ไอคอนด้านหน้าข้อความ วิดเจ็ตการเลือก หรือปุ่มที่อยู่หลังข้อความ ดูตัวอย่างในแอป Google Chat ได้ที่ข้อความที่มีการตกแต่ง
การแสดง JSON |
---|
{ "icon": { object ( |
ช่อง | |
---|---|
icon
|
เลิกใช้งานเพื่อใช้ |
startIcon
|
ไอคอนที่แสดงด้านหน้าข้อความ |
topLabel
|
ข้อความที่ปรากฏด้านบน |
text
|
ต้องระบุ ข้อความหลัก สนับสนุนการจัดรูปแบบที่เรียบง่าย ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดรูปแบบข้อความได้ที่การจัดรูปแบบข้อความในแอป Google Chat และการจัดรูปแบบข้อความในส่วนเสริมของ Google Workspace |
wrapText
|
การตั้งค่าตัดข้อความขึ้นบรรทัดใหม่ หากเป็น
ใช้เฉพาะกับ |
bottomLabel
|
ข้อความที่ปรากฏด้านล่าง |
onClick
|
ระบบจะทริกเกอร์การดำเนินการนี้เมื่อผู้ใช้คลิก
|
ช่องการรวม control ปุ่ม สวิตช์ ช่องทำเครื่องหมาย หรือรูปภาพที่ปรากฏทางด้านขวามือของข้อความในวิดเจ็ต decoratedText
control
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
|
|
button
|
ปุ่มที่ผู้ใช้สามารถคลิกเพื่อทริกเกอร์การทำงาน |
switchControl
|
วิดเจ็ตสวิตช์ที่ผู้ใช้สามารถคลิกเพื่อเปลี่ยนสถานะและทริกเกอร์การดำเนินการ |
endIcon
|
ไอคอนที่แสดงหลังข้อความ รองรับไอคอนในตัวและไอคอนแบบกำหนดเอง |
Icon
ไอคอนที่แสดงในวิดเจ็ตบนการ์ด ดูตัวอย่างในแอป Google Chat ที่ไอคอน
รองรับไอคอนในตัวและไอคอนแบบกำหนดเอง
การแสดง JSON |
---|
{ "altText": string, "imageType": enum ( |
ช่อง | |
---|---|
altText
|
ไม่บังคับ คำอธิบายไอคอนที่ใช้สำหรับการเข้าถึง หากไม่ระบุ ระบบจะระบุค่าเริ่มต้น
หากตั้งค่าไอคอนไว้ใน
|
imageType
|
รูปแบบการครอบตัดที่ใช้กับรูปภาพ ในบางกรณี การใช้การครอบตัด
|
ช่องการรวม icons ไอคอนที่แสดงในวิดเจ็ตบนการ์ด
icons
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
|
|
knownIcon
|
แสดงไอคอนในตัวที่ Google Workspace มีให้
ตัวอย่างเช่น หากต้องการแสดงไอคอนรูปเครื่องบิน ให้ระบุ ดูรายการไอคอนทั้งหมดที่รองรับได้ที่ไอคอนในตัว |
iconUrl
|
แสดงไอคอนที่กำหนดเองซึ่งโฮสต์ที่ URL แบบ HTTPS เช่น
ประเภทไฟล์ที่รองรับ ได้แก่ |
ปุ่ม
ข้อความ ไอคอน หรือข้อความและไอคอนที่ผู้ใช้สามารถคลิกได้ ดูตัวอย่างในแอป Google Chat ได้ที่รายการปุ่ม
หากต้องการทำให้รูปภาพเป็นปุ่มที่คลิกได้ ให้ระบุ
(ไม่ใช่ Image
) และตั้งค่าการดำเนินการ ImageComponent
onClick
การแสดง JSON |
---|
{ "text": string, "icon": { object ( |
ช่อง | |
---|---|
text
|
ข้อความที่แสดงภายในปุ่ม |
icon
|
รูปภาพไอคอน หากตั้งค่าทั้ง |
color
|
หากตั้งค่า ปุ่มจะเต็มไปด้วยสีพื้นหลังแบบทึบและสีตัวอักษรจะเปลี่ยนไปเพื่อรักษาคอนทราสต์กับสีพื้นหลัง ตัวอย่างเช่น การตั้งค่าพื้นหลังสีฟ้าอาจทำให้ข้อความเป็นสีขาว หากไม่ได้ตั้งค่า พื้นหลังของรูปภาพจะเป็นสีขาวและสีแบบอักษรจะเป็นสีน้ำเงิน
สำหรับสีแดง เขียว และน้ำเงิน ค่าของแต่ละช่องคือตัวเลข
เลือกตั้งค่า
สำหรับ ตัวอย่างเช่น สีต่อไปนี้แสดงสีแดงโปร่งแสงครึ่งหนึ่ง
|
onClick
|
ต้องระบุ การดำเนินการที่จะทำเมื่อผู้ใช้คลิกปุ่ม เช่น การเปิดไฮเปอร์ลิงก์หรือเรียกใช้ฟังก์ชันที่กำหนดเอง |
disabled
|
หากตั้งค่าเป็น |
altText
|
ข้อความสำรองที่ใช้สำหรับการช่วยเหลือพิเศษ กำหนดข้อความอธิบายที่แจ้งให้ผู้ใช้ทราบถึงการทำงานของปุ่ม เช่น หากปุ่มเปิดไฮเปอร์ลิงก์ คุณอาจเขียนว่า "เปิดแท็บเบราว์เซอร์ใหม่แล้วไปยังเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์ Google Chat ที่ https://developers.google.com/chat" |
สี
หมายถึงสีในพื้นที่สี RGBA การนำเสนอแบบนี้ได้รับการออกแบบมาเพื่อให้การแปลงไปยังและจากการนำเสนอสีในภาษาต่างๆ เป็นแบบเรียบง่ายภายใต้ขนาดกะทัดรัด เช่น คุณอาจระบุช่องของการนำเสนอนี้ให้กับตัวสร้างของ java.awt.Color
ใน Java ได้ นอกจากนี้ยังสามารถระบุช่องในเมธอด +colorWithRed:green:blue:alpha
ของ UIColor ใน iOS ได้เล็กน้อย และสามารถจัดรูปแบบเป็นสตริง CSS rgba()
ใน JavaScript ได้ง่ายๆ ด้วยการทำงานเพียงเล็กน้อย
หน้าอ้างอิงนี้ไม่มีข้อมูลเกี่ยวกับพื้นที่สีสัมบูรณ์ที่ควรใช้ในการตีความค่า RGB เช่น sRGB, Adobe RGB, DCI-P3 และ BT.2020 โดยค่าเริ่มต้น แอปพลิเคชันควรจะถือว่ามีพื้นที่สี sRGB
เมื่อต้องตัดสินใจเรื่องความเท่าเทียมของสี การใช้งานเว้นแต่จะระบุไว้เป็นอย่างอื่น ให้ถือว่าสี 2 สีเท่ากันหากค่าสีแดง สีเขียว สีน้ำเงิน และอัลฟ่าทั้งหมดต่างกันไม่เกิน 1e-5
สี
ตัวอย่าง (Java)
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
ตัวอย่าง (iOS / Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
ตัวอย่าง (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
การแสดง JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
ช่อง | |
---|---|
red
|
ปริมาณของสีแดงในสีเป็นค่าในช่วง [0, 1] |
green
|
ปริมาณสีเขียวในสีเป็นค่าในช่วง [0, 1] |
blue
|
ปริมาณของสีน้ำเงินในสีเป็นค่าในช่วง [0, 1] |
alpha
|
ส่วนของสีนี้ที่ควรนำไปใช้กับพิกเซล กล่าวคือ สีพิกเซลสุดท้ายจะกำหนดตามสมการ
หมายความว่าค่า 1.0 จะหมายถึงสีทึบ ขณะที่ค่า 0.0 หมายถึงสีโปร่งใสทั้งหมด การดำเนินการนี้จะใช้ข้อความ Wrapper แทนที่จะเป็นสเกลาร์แบบลอยแบบง่าย เพื่อให้คุณแยกความแตกต่างระหว่างค่าเริ่มต้นและค่าที่กำลังไม่ได้ตั้งค่าได้ หากไม่ระบุ ออบเจ็กต์สีนี้จะแสดงเป็นสีทึบ (เสมือนว่าค่าอัลฟ่ามีการกำหนดเป็น 1.0 อย่างชัดเจน) |
SwitchControl
สวิตช์รูปแบบสลับหรือช่องทำเครื่องหมายในวิดเจ็ต decoratedText
รองรับเฉพาะในวิดเจ็ต decoratedText
การแสดง JSON |
---|
{ "name": string, "value": string, "selected": boolean, "onChangeAction": { object ( |
ช่อง | |
---|---|
name
|
ชื่อที่ใช้ในการระบุวิดเจ็ตสวิตช์ในเหตุการณ์การป้อนฟอร์ม ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม |
value
|
ค่าที่ผู้ใช้ป้อนซึ่งแสดงเป็นส่วนหนึ่งของเหตุการณ์อินพุตแบบฟอร์ม ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม |
selected
|
เมื่อ
|
onChangeAction
|
การดําเนินการที่ทําเมื่อเปลี่ยนสถานะสวิตช์ เช่น ฟังก์ชันที่จะเรียกใช้ |
controlType
|
ลักษณะที่สวิตช์จะปรากฏในอินเทอร์เฟซผู้ใช้ |
ControlType
ลักษณะที่สวิตช์จะปรากฏในอินเทอร์เฟซผู้ใช้
Enum | |
---|---|
SWITCH
|
สวิตช์สลับรูปแบบ |
CHECKBOX
|
เลิกใช้งานเพื่อใช้ CHECK_BOX แทน
|
CHECK_BOX
|
ช่องทำเครื่องหมาย |
ButtonList
รายการปุ่มที่จัดวางในแนวนอน ดูตัวอย่างในแอป Google Chat ได้ที่รายการปุ่ม
การแสดง JSON |
---|
{
"buttons": [
{
object (
|
ช่อง | |
---|---|
buttons[]
|
อาร์เรย์ของปุ่ม |
TextInput
ช่องที่ผู้ใช้ป้อนข้อความได้ รองรับคำแนะนำและการดำเนินการที่เปลี่ยนแปลงตลอดเวลา ดูตัวอย่างในแอป Google Chat ได้ที่การป้อนข้อความ
แอปแชทจะได้รับและประมวลผลค่าของข้อความที่ป้อนระหว่างเหตุการณ์การป้อนข้อมูลแบบฟอร์ม ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม
เมื่อจําเป็นต้องรวบรวมข้อมูลที่ไม่ได้กําหนดหรือเป็นนามธรรมจากผู้ใช้ ให้ใช้การป้อนข้อความ หากต้องการรวบรวมข้อมูลที่กำหนดไว้หรือแจกแจงจากผู้ใช้ ให้ใช้วิดเจ็ต SelectionInput
การแสดง JSON |
---|
{ "name": string, "label": string, "hintText": string, "value": string, "type": enum ( |
ช่อง | |
---|---|
name
|
ชื่อที่ใช้ระบุการป้อนข้อความในเหตุการณ์การป้อนข้อมูลแบบฟอร์ม ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม |
label
|
ข้อความที่ปรากฏเหนือช่องป้อนข้อความในอินเทอร์เฟซผู้ใช้
ระบุข้อความที่ช่วยให้ผู้ใช้ป้อนข้อมูลที่แอปของคุณต้องการ ตัวอย่างเช่น หากคุณกำลังถามชื่อบุคคล แต่ต้องการนามสกุลโดยเฉพาะ ให้เขียน
ต้องระบุหากไม่ได้ระบุ |
hintText
|
ข้อความที่ปรากฏใต้ช่องป้อนข้อความซึ่งมีไว้เพื่อช่วยเหลือผู้ใช้ด้วยการแจ้งให้ป้อนค่าที่ต้องการ ระบบจะแสดงข้อความนี้เสมอ
ต้องระบุหากไม่ได้ระบุ |
value
|
ค่าที่ผู้ใช้ป้อนซึ่งแสดงเป็นส่วนหนึ่งของเหตุการณ์อินพุตแบบฟอร์ม ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม |
type
|
ลักษณะที่ช่องป้อนข้อความจะปรากฏในอินเทอร์เฟซผู้ใช้ เช่น ช่องนี้เป็นแบบบรรทัดเดียวหรือหลายบรรทัด |
onChangeAction
|
สิ่งที่ต้องทำเมื่อมีการเปลี่ยนแปลงในช่องป้อนข้อความ เช่น ผู้ใช้เพิ่มช่องหรือลบข้อความ ตัวอย่างการดำเนินการที่ต้องทำ เช่น การเรียกใช้ฟังก์ชันที่กำหนดเอง หรือการเปิดกล่องโต้ตอบใน Google Chat |
initialSuggestions
|
ค่าที่แนะนำซึ่งผู้ใช้ป้อนได้ ค่าเหล่านี้จะปรากฏขึ้นเมื่อผู้ใช้คลิกในช่องป้อนข้อความ ขณะที่ผู้ใช้พิมพ์ ค่าที่แนะนำจะกรองโดยอัตโนมัติเพื่อให้ตรงกับสิ่งที่ผู้ใช้พิมพ์
เช่น ช่องป้อนข้อความสำหรับภาษาโปรแกรมอาจแนะนำ Java, JavaScript, Python และ C++ เมื่อผู้ใช้เริ่มพิมพ์
ค่าที่แนะนำจะช่วยแนะนำให้ผู้ใช้ป้อนค่าที่แอปเข้าใจได้ เมื่อกล่าวถึง JavaScript ผู้ใช้บางคนอาจป้อน
เมื่อระบุ |
autoCompleteAction
|
ไม่บังคับ ระบุการดำเนินการที่ควรทำเมื่อช่องป้อนข้อความให้คำแนะนำแก่ผู้ใช้ที่โต้ตอบกับช่อง
หากไม่ระบุ ระบบจะกำหนดคำแนะนำโดย หากระบุไว้ แอปจะดำเนินการที่ระบุไว้ที่นี่ เช่น เรียกใช้ฟังก์ชันที่กำหนดเอง รองรับส่วนเสริมของ Google Workspace แต่ใช้ไม่ได้กับแอป Google Chat |
placeholderText
|
ข้อความที่ปรากฏในช่องป้อนข้อความเมื่อช่องว่างเปล่า ใช้ข้อความนี้เพื่อแจ้งให้ผู้ใช้ป้อนค่า เช่น รองรับในแอป Google Chat แต่ไม่รองรับส่วนเสริมของ Google Workspace |
ประเภท
ลักษณะที่ช่องป้อนข้อความจะปรากฏในอินเทอร์เฟซผู้ใช้ เช่น ช่องป้อนข้อมูลบรรทัดเดียวหรือหลายบรรทัด
หากระบุ initialSuggestions
แล้ว type
จะเป็น SINGLE_LINE
เสมอ แม้ว่าจะตั้งค่าเป็น MULTIPLE_LINE
ก็ตาม
Enum | |
---|---|
SINGLE_LINE
|
ฟิลด์ป้อนข้อความมีความสูงคงที่อยู่ที่หนึ่งบรรทัด |
MULTIPLE_LINE
|
ฟิลด์ป้อนข้อความมีความสูงคงที่หลายบรรทัด |
คำแนะนำ
ค่าที่แนะนำซึ่งผู้ใช้ป้อนได้ ค่าเหล่านี้จะปรากฏขึ้นเมื่อผู้ใช้คลิกในช่องป้อนข้อความ ขณะที่ผู้ใช้พิมพ์ ค่าที่แนะนำจะกรองโดยอัตโนมัติเพื่อให้ตรงกับสิ่งที่ผู้ใช้พิมพ์
เช่น ช่องป้อนข้อความสำหรับภาษาโปรแกรมอาจแนะนำ Java, JavaScript, Python และ C++ เมื่อผู้ใช้เริ่มพิมพ์ Jav
รายการตัวกรองคำแนะนำจะแสดง Java
และ JavaScript
ค่าที่แนะนำจะช่วยแนะนำให้ผู้ใช้ป้อนค่าที่แอปเข้าใจได้ เมื่อกล่าวถึง JavaScript ผู้ใช้บางคนอาจป้อน javascript
และอื่นๆ java script
การแนะนำ
JavaScript
จะช่วยให้กำหนดวิธีที่ผู้ใช้โต้ตอบกับแอปของคุณได้
เมื่อระบุ TextInput.type
จะเป็น SINGLE_LINE
เสมอ แม้ว่าจะตั้งค่าเป็น MULTIPLE_LINE
ก็ตาม
การแสดง JSON |
---|
{
"items": [
{
object (
|
ช่อง | |
---|---|
items[]
|
รายการคําแนะนําที่ใช้สําหรับคําแนะนําที่เติมข้อความอัตโนมัติในช่องป้อนข้อความ |
SuggestionItem
ค่าที่แนะนำ 1 ค่าที่ผู้ใช้สามารถป้อนในช่องป้อนข้อความ
การแสดง JSON |
---|
{ // Union field |
ช่อง | |
---|---|
ช่องการรวม
|
|
text
|
ค่าของอินพุตที่แนะนำในช่องป้อนข้อความ ซึ่งจะเท่ากับสิ่งที่ผู้ใช้ป้อนเอง |
SelectionInput
วิดเจ็ตที่สร้างรายการ UI อย่างน้อย 1 รายการที่ผู้ใช้เลือกได้ เช่น เมนูแบบเลื่อนลงหรือช่องทำเครื่องหมาย คุณสามารถใช้วิดเจ็ตนี้เพื่อเก็บรวบรวมข้อมูลที่สามารถคาดการณ์หรือแจกแจงได้ ดูตัวอย่างในแอป Google Chat ได้ที่การป้อนข้อมูลการเลือก
แอปแชทจะประมวลผลค่าของรายการที่ผู้ใช้เลือกหรือป้อนได้ ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม
หากต้องการรวบรวมข้อมูลที่ไม่ได้กำหนดหรือเป็นนามธรรมจากผู้ใช้ ให้ใช้วิดเจ็ต TextInput
การแสดง 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
รูปแบบของรายการที่ผู้ใช้เลือกได้ ตัวเลือกที่ต่างกันจะรองรับการโต้ตอบประเภทต่างๆ เช่น ผู้ใช้สามารถเลือกช่องทำเครื่องหมายได้หลายช่อง แต่สามารถเลือกได้เพียง 1 รายการจากเมนูแบบเลื่อนลง
อินพุตของการเลือกแต่ละรายการจะรองรับการเลือกได้ 1 ประเภท เช่น ไม่รองรับการผสมช่องทำเครื่องหมายและสวิตช์ เป็นต้น
Enum | |
---|---|
CHECK_BOX
|
ชุดช่องทำเครื่องหมาย ผู้ใช้เลือกช่องทำเครื่องหมายได้อย่างน้อย 1 ช่อง |
RADIO_BUTTON
|
ชุดของปุ่มตัวเลือก ผู้ใช้เลือกปุ่มตัวเลือกได้ 1 ปุ่ม |
SWITCH
|
ชุดสวิตช์ ผู้ใช้เปิดสวิตช์ได้อย่างน้อย 1 สวิตช์ |
DROPDOWN
|
เมนูแบบเลื่อนลง ผู้ใช้เลือกได้ 1 รายการจากเมนู |
MULTI_SELECT
|
รองรับในแอป Chat แต่ไม่รองรับส่วนเสริมของ Google Workspace เมนูการเลือกหลายรายการสำหรับข้อมูลแบบคงที่หรือแบบไดนามิก ผู้ใช้จะเลือกอย่างน้อย 1 รายการจากแถบเมนู ผู้ใช้ยังป้อนค่าเพื่อป้อนข้อมูลแบบไดนามิกได้ด้วย เช่น ผู้ใช้เริ่มพิมพ์ชื่อของพื้นที่ทำงานใน Google Chat แล้ววิดเจ็ตจะแนะนำพื้นที่ทำงานให้โดยอัตโนมัติ หากต้องการเติมข้อมูลรายการสำหรับเมนูการเลือกหลายรายการ คุณสามารถใช้แหล่งข้อมูลประเภทใดประเภทหนึ่งต่อไปนี้
ดูตัวอย่างวิธีใช้เมนูแบบเลือกหลายรายการได้ที่
หน้าวิดเจ็ต |
SelectionItem
รายการที่ผู้ใช้เลือกในอินพุตการเลือกได้ เช่น ช่องทำเครื่องหมายหรือสวิตช์
การแสดง JSON |
---|
{ "text": string, "value": string, "selected": boolean, "startIconUri": string, "bottomText": string } |
ช่อง | |
---|---|
text
|
ข้อความที่ระบุหรืออธิบายรายการให้ผู้ใช้ทราบ |
value
|
ค่าที่เชื่อมโยงกับรายการนี้ โดยไคลเอ็นต์ควรใช้ค่านี้เป็นค่าอินพุตฟอร์ม ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม |
selected
|
เลือกรายการนั้นโดยค่าเริ่มต้นหรือไม่ หากอินพุตการเลือกยอมรับเพียงค่าเดียว (เช่น สําหรับปุ่มตัวเลือกหรือเมนูแบบเลื่อนลง) ให้ตั้งค่าช่องนี้สําหรับรายการเดียวเท่านั้น |
startIconUri
|
สำหรับเมนูแบบเลือกหลายรายการ URL สำหรับไอคอนที่แสดงถัดจากช่อง |
bottomText
|
สำหรับเมนูแบบเลือกหลายรายการ คำอธิบายข้อความหรือป้ายกำกับที่แสดงใต้ช่อง |
PlatformDataSource
แอปแชทเท่านั้น สำหรับวิดเจ็ต
ที่ใช้เมนูแบบเลือกหลายรายการ ซึ่งเป็นแหล่งข้อมูลจาก Google Workspace ใช้เพื่อป้อนข้อมูลรายการในเมนูแบบเลือกหลายรายการ
SelectionInput
การแสดง JSON |
---|
{ // Union field |
ช่อง | |
---|---|
ช่องการรวม data_source แหล่งข้อมูล
data_source
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
|
|
commonDataSource
|
แหล่งข้อมูลที่แชร์โดยแอปพลิเคชัน Google Workspace ทั้งหมด เช่น ผู้ใช้ในองค์กร Google Workspace |
hostAppDataSource
|
แหล่งข้อมูลเฉพาะสําหรับแอปพลิเคชันโฮสต์ของ Google Workspace เช่น พื้นที่ใน Google Chat |
CommonDataSource
แอปแชทเท่านั้น แหล่งข้อมูลที่แชร์โดยแอปพลิเคชัน Google Workspace ทั้งหมด
Enum | |
---|---|
UNKNOWN
|
ค่าเริ่มต้น โปรดอย่าใช้ |
USER
|
Google Workspace ผู้ใช้สามารถดูและเลือกผู้ใช้จากองค์กร Google Workspace ของตนเองได้เท่านั้น |
HostAppDataSourceMarkup
แอปแชทเท่านั้น สำหรับวิดเจ็ต
ที่ใช้เมนูแบบเลือกหลายรายการ ซึ่งเป็นแหล่งข้อมูลจากแอปพลิเคชัน Google Workspace แหล่งข้อมูลจะเติมข้อมูลรายการที่เลือกสำหรับเมนูการเลือกหลายรายการ
SelectionInput
การแสดง JSON |
---|
{ // Union field |
ช่อง | |
---|---|
ช่องการรวม data_source แอปพลิเคชัน Google Workspace ที่เติมข้อมูลรายการสำหรับเมนูแบบเลือกหลายรายการ
data_source
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
|
|
chatDataSource
|
แหล่งข้อมูลจาก Google Chat |
ChatClientDataSourceMarkup
แอปแชทเท่านั้น สำหรับวิดเจ็ต
ที่ใช้เมนูแบบเลือกหลายรายการ ซึ่งเป็นแหล่งข้อมูลจาก Google Chat แหล่งข้อมูลจะเติมข้อมูลรายการที่เลือกสำหรับเมนูการเลือกหลายรายการ ตัวอย่างเช่น ผู้ใช้สามารถเลือกพื้นที่ใน Google Chat ที่ตนเป็นสมาชิกได้
SelectionInput
การแสดง JSON |
---|
{ // Union field |
ช่อง | |
---|---|
ช่องการรวม source แหล่งข้อมูล Google Chat
source
ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
|
|
spaceDataSource
|
พื้นที่ใน Google Chat ที่ผู้ใช้เป็นสมาชิก |
SpaceDataSource
แหล่งข้อมูลที่เติมพื้นที่ใน Google Chat เป็นรายการที่เลือกสำหรับเมนูการเลือกหลายรายการ ป้อนข้อมูลเฉพาะพื้นที่ทำงานที่ผู้ใช้เป็นสมาชิกเท่านั้น
การแสดง JSON |
---|
{ "defaultToCurrentSpace": boolean } |
ช่อง | |
---|---|
defaultToCurrentSpace
|
หากตั้งค่าเป็น
|
DateTimePicker
อนุญาตให้ผู้ใช้ป้อนวันที่ เวลา หรือทั้งวันที่และเวลา ดูตัวอย่างในแอป Google Chat ที่เครื่องมือเลือกวันที่และเวลา
ผู้ใช้จะป้อนข้อความหรือใช้เครื่องมือเลือกเพื่อเลือกวันที่และเวลาได้ หากผู้ใช้ป้อนวันที่หรือเวลาไม่ถูกต้อง เครื่องมือเลือกจะแสดงข้อผิดพลาดที่แจ้งให้ผู้ใช้ป้อนข้อมูลอย่างถูกต้อง
การแสดง JSON |
---|
{ "name": string, "label": string, "type": enum ( |
ช่อง | |
---|---|
name
|
ชื่อที่ใช้ระบุ ดูรายละเอียดเกี่ยวกับการทำงานกับอินพุตแบบฟอร์มได้ที่รับข้อมูลแบบฟอร์ม |
label
|
ข้อความที่แจ้งให้ผู้ใช้ป้อนวันที่ เวลา หรือวันที่และเวลา เช่น หากผู้ใช้กำลังกำหนดเวลาการนัดหมาย ให้ใช้ป้ายกำกับอย่าง
|
type
|
วิดเจ็ตรองรับการป้อนข้อมูลวันที่ เวลา หรือวันที่และเวลาหรือไม่ |
valueMsEpoch
|
ค่าเริ่มต้นที่แสดงในวิดเจ็ตเป็นมิลลิวินาทีตั้งแต่เวลา Epoch ของ Unix
ระบุค่าตามประเภทของเครื่องมือเลือก (
|
timezoneOffsetDate
|
ตัวเลขที่แสดงค่าออฟเซ็ตของเขตเวลาจาก UTC ในหน่วยนาที หากตั้งค่าแล้ว |
onChangeAction
|
ทริกเกอร์เมื่อผู้ใช้คลิก
บันทึก
หรือ
ล้าง
จากอินเทอร์เฟซ
|
DateTimePickerType
รูปแบบของวันที่และเวลาในวิดเจ็ต DateTimePicker
กำหนดว่าผู้ใช้จะป้อนวันที่ เวลา หรือทั้งวันที่และเวลาได้
Enum | |
---|---|
DATE_AND_TIME
|
ผู้ใช้จะป้อนวันที่และเวลา |
DATE_ONLY
|
ผู้ใช้ป้อนวันที่ |
TIME_ONLY
|
ผู้ใช้ป้อนเวลา |
ตัวแบ่ง
ประเภทนี้ไม่มีช่อง
แสดงเส้นแบ่งระหว่างวิดเจ็ตเป็นเส้นแนวนอน ดูตัวอย่างในแอป Google Chat ได้ที่ตัวแบ่ง
ตัวอย่างเช่น JSON ต่อไปนี้จะสร้างตัวแบ่ง
"divider": {}
GRid
แสดงตารางกริดที่มีคอลเล็กชันรายการ รายการจะมีได้เฉพาะข้อความหรือรูปภาพ สำหรับคอลัมน์ที่ปรับเปลี่ยนตามอุปกรณ์ หรือจะรวมมากกว่าข้อความหรือรูปภาพ ให้ใช้
ดูตัวอย่างในแอป Google Chat ได้ที่ตารางกริด
Columns
ตารางกริดรองรับคอลัมน์และรายการกี่รายการก็ได้ ระบบจะกำหนดจำนวนแถวตามรายการหารด้วยคอลัมน์ ตารางกริดที่มี 10 รายการ 2 คอลัมน์จะมี 5 แถว ตารางกริดที่มี 11 รายการ 2 คอลัมน์จะมี 6 แถว
เช่น JSON ต่อไปนี้จะสร้างตารางกริดแบบ 2 คอลัมน์ที่มีรายการเดียว
"grid": {
"title": "A fine collection of items",
"columnCount": 2,
"borderStyle": {
"type": "STROKE",
"cornerRadius": 4
},
"items": [
{
"image": {
"imageUri": "https://www.example.com/image.png",
"cropStyle": {
"type": "SQUARE"
},
"borderStyle": {
"type": "STROKE"
}
},
"title": "An item",
"textAlignment": "CENTER"
}
],
"onClick": {
"openLink": {
"url": "https://www.example.com"
}
}
}
การแสดง JSON |
---|
{ "title": string, "items": [ { object ( |
ช่อง | |
---|---|
title
|
ข้อความที่แสดงในส่วนหัวของตารางกริด |
items[]
|
รายการที่จะแสดงในตาราง |
borderStyle
|
รูปแบบเส้นขอบที่จะใช้กับแต่ละรายการในตาราง |
columnCount
|
จำนวนคอลัมน์ที่จะแสดงในตารางกริด ระบบจะใช้ค่าเริ่มต้นหากไม่ได้ระบุช่องนี้ และค่าเริ่มต้นนั้นจะต่างกันไปตามตำแหน่งที่แสดงตารางกริด (กล่องโต้ตอบเทียบกับโฆษณาที่แสดงร่วม) |
onClick
|
โค้ดเรียกกลับนี้จะนำมาใช้ซ้ำสำหรับรายการแบบตารางกริดแต่ละรายการ แต่จะใช้ตัวระบุและดัชนีของรายการในรายการที่เพิ่มลงในพารามิเตอร์ของโค้ดเรียกกลับ |
GridItem
แสดงรายการในเลย์เอาต์แบบตารางกริด รายการอาจมีข้อความ รูปภาพ หรือทั้งข้อความและรูปภาพ
การแสดง JSON |
---|
{ "id": string, "image": { object ( |
ช่อง | |
---|---|
id
|
ตัวระบุที่ผู้ใช้ระบุสำหรับรายการในตารางกริดนี้ ตัวระบุนี้จะแสดงอยู่ในพารามิเตอร์เรียกกลับ |
image
|
รูปภาพที่แสดงในรายการตารางกริด |
title
|
ชื่อของรายการตารางกริด |
subtitle
|
คำบรรยายของรายการในตาราง |
layout
|
เลย์เอาต์ที่จะใช้สำหรับรายการในตาราง |
ImageComponent
หมายถึงรูปภาพ
การแสดง JSON |
---|
{ "imageUri": string, "altText": string, "cropStyle": { object ( |
ช่อง | |
---|---|
imageUri
|
URL รูปภาพ |
altText
|
ป้ายกำกับการช่วยเหลือพิเศษของรูปภาพ |
cropStyle
|
รูปแบบการครอบตัดที่จะใช้กับรูปภาพ |
borderStyle
|
รูปแบบเส้นขอบที่จะใช้กับรูปภาพ |
ImageCropStyle
แสดงรูปแบบการครอบตัดที่ใช้กับรูปภาพ
ตัวอย่างเช่น วิธีใช้สัดส่วนภาพ 16:9
cropStyle {
"type": "RECTANGLE_CUSTOM",
"aspectRatio": 16/9
}
การแสดง JSON |
---|
{
"type": enum (
|
ช่อง | |
---|---|
type
|
ประเภทการครอบตัด |
aspectRatio
|
สัดส่วนภาพที่จะใช้หากประเภทการครอบตัดคือ ตัวอย่างเช่น วิธีใช้สัดส่วนภาพ 16:9
|
ImageCropType
แสดงรูปแบบการครอบตัดที่ใช้กับรูปภาพ
Enum | |
---|---|
IMAGE_CROP_TYPE_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
SQUARE
|
ค่าเริ่มต้น ใช้การครอบตัดรูปสี่เหลี่ยมจัตุรัส |
CIRCLE
|
ใช้การครอบตัดวงกลม |
RECTANGLE_CUSTOM
|
ใช้การครอบตัดสี่เหลี่ยมผืนผ้าที่มีสัดส่วนภาพที่กำหนดเอง ตั้งค่าสัดส่วนภาพที่กำหนดเองด้วย aspectRatio
|
RECTANGLE_4_3
|
ใช้การครอบตัดสี่เหลี่ยมผืนผ้าที่มีสัดส่วนภาพ 4:3 |
BorderStyle
ตัวเลือกรูปแบบเส้นขอบของการ์ดหรือวิดเจ็ต รวมถึงประเภทเส้นขอบและสี
การแสดง JSON |
---|
{ "type": enum ( |
ช่อง | |
---|---|
type
|
ประเภทเส้นขอบ |
strokeColor
|
สีที่จะใช้เมื่อเป็นประเภท |
cornerRadius
|
รัศมีมุมสำหรับเส้นขอบ |
BorderType
แสดงประเภทเส้นขอบที่ใช้กับวิดเจ็ต
Enum | |
---|---|
BORDER_TYPE_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
NO_BORDER
|
ค่าเริ่มต้น ไม่มีเส้นขอบ |
STROKE
|
สรุป |
GridItemLayout
แสดงตัวเลือกเลย์เอาต์ต่างๆ ที่ใช้ได้สำหรับรายการแบบตารางกริด
Enum | |
---|---|
GRID_ITEM_LAYOUT_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
TEXT_BELOW
|
ชื่อและคำบรรยายจะแสดงใต้รูปภาพของรายการตารางกริด |
TEXT_ABOVE
|
ชื่อและคำบรรยายจะแสดงเหนือรูปภาพของรายการตารางกริด |
คอลัมน์
วิดเจ็ต Columns
จะแสดงคอลัมน์สูงสุด 2 คอลัมน์ในข้อความของการ์ดหรือกล่องโต้ตอบ คุณเพิ่มวิดเจ็ตลงในแต่ละคอลัมน์ได้ วิดเจ็ตจะปรากฏตามลำดับที่ระบุไว้ ดูตัวอย่างในแอป Google Chat ได้ที่คอลัมน์
ความสูงของแต่ละคอลัมน์จะกำหนดโดยคอลัมน์ที่สูงขึ้น ตัวอย่างเช่น หากคอลัมน์แรกสูงกว่าคอลัมน์ที่ 2 ทั้ง 2 คอลัมน์จะมีความสูงของคอลัมน์แรก เนื่องจากแต่ละคอลัมน์มีจำนวนวิดเจ็ตแตกต่างกัน คุณจึงกำหนดแถวหรือจัดเรียงวิดเจ็ตระหว่างคอลัมน์ไม่ได้
คอลัมน์จะแสดงคู่กัน คุณปรับแต่งความกว้างของแต่ละคอลัมน์ได้โดยใช้ช่อง HorizontalSizeStyle
หากความกว้างหน้าจอของผู้ใช้แคบเกินไป คอลัมน์ที่ 2 จะอยู่ภายในคอลัมน์แรก ดังนี้
- ในเว็บ คอลัมน์ที่ 2 จะตัดข้อความหากมีความกว้างหน้าจอน้อยกว่าหรือเท่ากับ 480 พิกเซล
- บนอุปกรณ์ iOS คอลัมน์ที่ 2 จะตัดข้อความหากมีความกว้างหน้าจอน้อยกว่าหรือเท่ากับ 300 พอยต์
- ในอุปกรณ์ Android คอลัมน์ที่ 2 จะตัดข้อความหากมีความกว้างหน้าจอน้อยกว่าหรือเท่ากับ 320 dp
หากต้องการรวมมากกว่า 2 คอลัมน์หรือใช้แถว ให้ใช้วิดเจ็ต Grid
รองรับในแอป Chat แต่ไม่รองรับส่วนเสริมของ Google Workspace
การแสดง JSON |
---|
{
"columnItems": [
{
object (
|
ช่อง | |
---|---|
columnItems[]
|
อาร์เรย์ของคอลัมน์ คุณใส่คอลัมน์ได้สูงสุด 2 คอลัมน์ในการ์ดหรือกล่องโต้ตอบ |
คอลัมน์
คอลัมน์
การแสดง JSON |
---|
{ "horizontalSizeStyle": enum ( |
ช่อง | |
---|---|
horizontalSizeStyle
|
ระบุวิธีที่คอลัมน์เติมความกว้างของการ์ด |
horizontalAlignment
|
ระบุว่าจะให้วิดเจ็ตอยู่ทางซ้าย ขวา หรือตรงกลางของคอลัมน์ |
verticalAlignment
|
ระบุว่าวิดเจ็ตจะปรับแนวอยู่ด้านบน ด้านล่าง หรือตรงกลางของคอลัมน์ |
widgets[]
|
อาร์เรย์ของวิดเจ็ตที่รวมอยู่ในคอลัมน์ วิดเจ็ตจะปรากฏตามลำดับที่ระบุไว้ |
HorizontalSizeStyle
ระบุวิธีที่คอลัมน์เติมความกว้างของการ์ด ความกว้างของแต่ละคอลัมน์ขึ้นอยู่กับทั้ง HorizontalSizeStyle
และความกว้างของวิดเจ็ตภายในคอลัมน์
Enum | |
---|---|
HORIZONTAL_SIZE_STYLE_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
FILL_AVAILABLE_SPACE
|
ค่าเริ่มต้น คอลัมน์แสดงพื้นที่ว่างสูงสุด 70% ของความกว้างของการ์ด หากตั้งค่าทั้ง 2 คอลัมน์เป็น FILL_AVAILABLE_SPACE แต่ละคอลัมน์จะใช้พื้นที่ 50%
|
FILL_MINIMUM_SPACE
|
คอลัมน์ใช้พื้นที่น้อยที่สุดเท่าที่จะเป็นไปได้และไม่เกิน 30% ของความกว้างของการ์ด |
HorizontalAlignment
ระบุว่าจะให้วิดเจ็ตอยู่ทางซ้าย ขวา หรือตรงกลางของคอลัมน์
Enum | |
---|---|
HORIZONTAL_ALIGNMENT_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
START
|
ค่าเริ่มต้น จัดวิดเจ็ตไปยังตำแหน่งเริ่มต้นของคอลัมน์ สำหรับเลย์เอาต์จากซ้ายไปขวา ให้ปรับแนวชิดด้านซ้าย สำหรับเลย์เอาต์จากขวาไปซ้าย ให้ปรับแนวไปทางขวา |
CENTER
|
จัดวิดเจ็ตไว้ตรงกลางคอลัมน์ |
END
|
จัดวิดเจ็ตไว้ที่ตำแหน่งสิ้นสุดของคอลัมน์ สำหรับเลย์เอาต์จากซ้ายไปขวา ให้จัดวิดเจ็ตชิดขวา สำหรับรูปแบบจากขวาไปซ้าย ให้จัดวิดเจ็ตชิดซ้าย |
VerticalAlignment
ระบุว่าวิดเจ็ตจะปรับแนวอยู่ด้านบน ด้านล่าง หรือตรงกลางของคอลัมน์
Enum | |
---|---|
VERTICAL_ALIGNMENT_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
CENTER
|
ค่าเริ่มต้น จัดวิดเจ็ตให้อยู่ตรงกลางของคอลัมน์ |
TOP
|
จัดวิดเจ็ตไว้ที่ด้านบนของคอลัมน์ |
BOTTOM
|
จัดวิดเจ็ตไว้ที่ด้านล่างของคอลัมน์ |
วิดเจ็ต
วิดเจ็ตที่รองรับซึ่งคุณสามารถรวมไว้ในคอลัมน์ได้
การแสดง JSON |
---|
{ // Union field |
ช่อง | |
---|---|
ช่องการรวม
|
|
textParagraph
|
วิดเจ็ต |
image
|
วิดเจ็ต |
decoratedText
|
วิดเจ็ต |
buttonList
|
วิดเจ็ต |
textInput
|
วิดเจ็ต |
selectionInput
|
วิดเจ็ต |
dateTimePicker
|
วิดเจ็ต |
DividerStyle
รูปแบบเส้นแบ่งของการ์ด ปัจจุบันใช้สำหรับตัวแบ่งระหว่างส่วนต่างๆ ของการ์ดเท่านั้น
Enum | |
---|---|
DIVIDER_STYLE_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
SOLID_DIVIDER
|
ตัวเลือกเริ่มต้น แสดงเส้นแบ่งทึบระหว่างส่วนต่างๆ |
NO_DIVIDER
|
หากตั้งค่า จะไม่มีการแสดงตัวแบ่งระหว่างส่วนต่างๆ |
CardAction
การทำงานของการ์ดคือการทำงานที่เชื่อมโยงกับการ์ด เช่น การ์ดใบแจ้งหนี้อาจรวมการดำเนินการต่างๆ เช่น ลบใบแจ้งหนี้ อีเมลใบแจ้งหนี้ หรือเปิดใบแจ้งหนี้ในเบราว์เซอร์
ไม่รองรับในแอป Chat
การแสดง JSON |
---|
{
"actionLabel": string,
"onClick": {
object (
|
ช่อง | |
---|---|
actionLabel
|
ป้ายกำกับที่แสดงเป็นรายการในเมนูการทำงาน |
onClick
|
การดำเนินการ
|
DisplayStyle
ในส่วนเสริมของ Google Workspace จะกำหนดวิธีการแสดงการ์ด
ไม่รองรับในแอป Chat
Enum | |
---|---|
DISPLAY_STYLE_UNSPECIFIED
|
โปรดอย่าใช้ ไม่ระบุ |
PEEK
|
ส่วนหัวของการ์ดจะปรากฏที่ด้านล่างของแถบด้านข้าง โดยบดบังการ์ดด้านบนในปัจจุบันของกลุ่มการ์ดบางส่วน การคลิกที่ส่วนหัวจะเป็นการแสดงการ์ดในกลุ่มการ์ด หากการ์ดไม่มีส่วนหัว ระบบจะใช้ส่วนหัวที่สร้างขึ้นแทน |
REPLACE
|
ค่าเริ่มต้น การ์ดจะแสดงโดยแทนที่มุมมองของการ์ดบนสุดในกลุ่มการ์ด |