Card

Giao diện thẻ xuất hiện trong tin nhắn trò chuyện trên Google Chat hoặc tiện ích bổ sung của Google Workspace.

Thẻ hỗ trợ bố cục được xác định, các phần tử trên giao diện người dùng tương tác như nút và nội dung đa phương tiện như hình ảnh. Sử dụng thẻ để trình bày thông tin chi tiết, thu thập thông tin từ người dùng và hướng dẫn người dùng thực hiện bước tiếp theo.

Thiết kế và xem trước thẻ bằng Trình tạo thẻ.

Mở Trình tạo thẻ

Để tìm hiểu cách tạo thẻ, hãy xem tài liệu sau:

Lưu ý: Bạn có thể thêm tối đa 100 tiện ích cho mỗi thẻ. Nếu các tiện ích của một phần đẩy tổng số lượng lên trên 100, thì toàn bộ phần đó và tất cả các phần sau sẽ bị bỏ qua. Giới hạn này áp dụng cho cả tin nhắn dạng thẻ và hộp thoại trong ứng dụng Google Chat, cũng như cho thẻ trong các tiện ích bổ sung của Google Workspace.

Ví dụ: Tin nhắn dạng thẻ cho ứng dụng Google Chat

Danh thiếp mẫu

Để tạo tin nhắn dạng thẻ mẫu trong Google Chat, hãy sử dụng JSON sau:

{
  "cardsV2": [
    {
      "cardId": "unique-card-id",
      "card": {
        "header": {
           "title": "Sasha",
           "subtitle": "Software Engineer",
           "imageUrl":
           "https://developers.google.com/workspace/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"
                             }
                           ]
                         }
                       }
                     }
                   ]
                 }
               }
             ]
           }
         ]
       }
    }
  ]
}
Biểu diễn dưới dạng JSON
{
  "header": {
    object (CardHeader)
  },
  "sections": [
    {
      object (Section)
    }
  ],
  "sectionDividerStyle": enum (DividerStyle),
  "cardActions": [
    {
      object (CardAction)
    }
  ],
  "name": string,
  "fixedFooter": {
    object (CardFixedFooter)
  },
  "displayStyle": enum (DisplayStyle),
  "peekCardHeader": {
    object (CardHeader)
  },
  "expressionData": [
    {
      object (ExpressionData)
    }
  ]
}
Trường
header

object (CardHeader)

Tiêu đề của thẻ. Tiêu đề thường chứa hình ảnh chính và tiêu đề. Tiêu đề luôn xuất hiện ở đầu thẻ.

sections[]

object (Section)

Chứa một tập hợp các tiện ích. Mỗi phần có tiêu đề riêng (không bắt buộc). Các phần được phân tách bằng một đường kẻ. Để xem ví dụ về ứng dụng Google Chat, hãy xem bài viết Xác định một phần của thẻ.

sectionDividerStyle

enum (DividerStyle)

Kiểu đường phân cách giữa tiêu đề, các phần và chân trang.

cardActions[]

object (CardAction)

Thao tác của thẻ. Các thao tác được thêm vào trình đơn trên thanh công cụ của thẻ. Hỗ trợ tối đa 10 mục CardAction.

Có trong các tiện ích bổ sung của Google Workspace và không có trong các ứng dụng Google Chat.

Ví dụ: JSON sau đây tạo một trình đơn thao tác trên thẻ với các lựa chọn Settings và Send Feedback:

"cardActions": [
  {
    "actionLabel": "Settings",
    "onClick": {
      "action": {
        "functionName": "goToView",
        "parameters": [
          {
            "key": "viewType",
            "value": "SETTING"
         }
        ],
        "loadIndicator": "LoadIndicator.SPINNER"
      }
    }
  },
  {
    "actionLabel": "Send Feedback",
    "onClick": {
      "openLink": {
        "url": "https://example.com/feedback"
      }
    }
  }
]
name

string

Tên thẻ. Dùng làm giá trị nhận dạng thẻ trong thao tác điều hướng thẻ.

Có trong các tiện ích bổ sung của Google Workspace và không có trong các ứng dụng Google Chat.

displayStyle

enum (DisplayStyle)

Trong tiện ích bổ sung của Google Workspace, hãy đặt thuộc tính hiển thị của peekCardHeader.

Có trong các tiện ích bổ sung của Google Workspace và không có trong các ứng dụng Google Chat.

peekCardHeader

object (CardHeader)

Khi hiển thị nội dung theo bối cảnh, tiêu đề thẻ xem nhanh đóng vai trò là phần giữ chỗ để người dùng có thể di chuyển về phía trước giữa thẻ trang chủ và thẻ theo bối cảnh.

Có trong các tiện ích bổ sung của Google Workspace và không có trong các ứng dụng Google Chat.

expressionData[]

object (ExpressionData)

Dữ liệu biểu thức cho thẻ.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

CardHeader

Đại diện cho tiêu đề thẻ. Để xem ví dụ về ứng dụng Google Chat, hãy xem phần Thêm tiêu đề.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "title": string,
  "subtitle": string,
  "imageType": enum (ImageType),
  "imageUrl": string,
  "imageAltText": string
}
Trường
title

string

Bắt buộc. Tiêu đề của phần đầu thẻ. Tiêu đề có chiều cao cố định: nếu bạn chỉ định cả tiêu đề và phụ đề, thì mỗi tiêu đề sẽ chiếm một dòng. Nếu chỉ có tiêu đề được chỉ định, thì tiêu đề đó sẽ chiếm cả hai dòng.

subtitle

string

Phụ đề của tiêu đề thẻ. Nếu được chỉ định, thì thông tin này sẽ xuất hiện trên dòng riêng bên dưới title.

imageType

enum (ImageType)

Hình dạng dùng để cắt hình ảnh.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

imageUrl

string

URL loại HTTPS của hình ảnh trong tiêu đề thẻ.

imageAltText

string

Văn bản thay thế của hình ảnh này được dùng cho mục đích hỗ trợ tiếp cận.

Phần

Một mục chứa một tập hợp các tiện ích được hiển thị theo chiều dọc theo thứ tự được chỉ định.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "header": string,
  "widgets": [
    {
      object (Widget)
    }
  ],
  "collapsible": boolean,
  "uncollapsibleWidgetsCount": integer,
  "id": string,
  "collapseControl": {
    object (CollapseControl)
  }
}
Trường
header

string

Văn bản xuất hiện ở đầu một phần. Hỗ trợ văn bản có định dạng HTML đơn giản. Để biết thêm thông tin về cách định dạng văn bản, hãy xem bài viết Định dạng văn bản trong ứng dụng Google Chat và Định dạng văn bản trong tiện ích bổ sung của Google Workspace.

widgets[]

object (Widget)

Tất cả tiện ích trong mục này. Phải chứa ít nhất một tiện ích. Một thẻ hỗ trợ tối đa 100 tiện ích trên tất cả các mục.

collapsible

boolean

Cho biết liệu phần này có thể thu gọn hay không.

Các mục có thể thu gọn sẽ ẩn một số hoặc tất cả tiện ích, nhưng người dùng có thể mở rộng mục đó để hiển thị các tiện ích bị ẩn bằng cách nhấp vào Hiện thêm. Người dùng có thể ẩn lại các tiện ích bằng cách nhấp vào Ẩn bớt.

Để xác định tiện ích nào bị ẩn, hãy chỉ định uncollapsibleWidgetsCount.

uncollapsibleWidgetsCount

integer

Số lượng tiện ích không thể thu gọn vẫn hiển thị ngay cả khi một mục được thu gọn.

Ví dụ: khi một mục chứa 5 tiện ích và uncollapsibleWidgetsCount được đặt thành 2, thì hai tiện ích đầu tiên luôn xuất hiện và ba tiện ích cuối cùng sẽ được thu gọn theo mặc định. uncollapsibleWidgetsCount chỉ được xem xét khi collapsible là true.

id

string

Mã nhận dạng duy nhất được chỉ định cho phần dùng để xác định phần cần thay đổi. Mã nhận dạng có giới hạn ký tự là 64 ký tự và phải có định dạng [a-zA-Z0-9-]+.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

collapseControl

object (CollapseControl)

Không bắt buộc. Xác định nút mở rộng và thu gọn của mục. Nút này chỉ xuất hiện nếu phần này có thể thu gọn. Nếu bạn không đặt trường này, hệ thống sẽ sử dụng nút mặc định.

Tiện ích

Mỗi thẻ được tạo thành từ các tiện ích.

Tiện ích là một đối tượng tổng hợp có thể đại diện cho một trong các loại đối tượng như văn bản, hình ảnh, nút và các loại đối tượng khác.

Biểu diễn dưới dạng JSON
{
  "horizontalAlignment": enum (HorizontalAlignment),
  "id": string,
  "visibility": enum (Visibility),
  "eventActions": [
    {
      object (EventAction)
    }
  ],

  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "divider": {
    object (Divider)
  },
  "grid": {
    object (Grid)
  },
  "columns": {
    object (Columns)
  },
  "carousel": {
    object (Carousel)
  },
  "chipList": {
    object (ChipList)
  }
}
Trường
horizontalAlignment

enum (HorizontalAlignment)

Chỉ định xem các tiện ích có căn chỉnh sang trái, phải hay giữa cột hay không.

id

string

Mã nhận dạng duy nhất được chỉ định cho tiện ích dùng để xác định tiện ích cần thay đổi. Mã nhận dạng có giới hạn ký tự là 64 ký tự và phải có định dạng [a-zA-Z0-9-]+.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

visibility

enum (Visibility)

Chỉ định xem tiện ích hiển thị hay bị ẩn. Giá trị mặc định là VISIBLE.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

eventActions[]

object (EventAction)

Chỉ định các hành động sự kiện có thể thực hiện trên tiện ích.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Một tiện ích chỉ có thể có một trong các mục sau. Bạn có thể sử dụng nhiều trường tiện ích để hiển thị nhiều mục hơn. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
textParagraph

object (TextParagraph)

Hiển thị một đoạn văn bản. Hỗ trợ văn bản có định dạng HTML đơn giản. Để biết thêm thông tin về cách định dạng văn bản, hãy xem bài viết Định dạng văn bản trong ứng dụng Google Chat và Định dạng văn bản trong tiện ích bổ sung của Google Workspace.

Ví dụ: JSON sau đây tạo văn bản in đậm:

"textParagraph": {
  "text": "  <b>bold text</b>"
}
image

object (Image)

Hiển thị hình ảnh.

Ví dụ: JSON sau đây tạo một hình ảnh có văn bản thay thế:

"image": {
  "imageUrl":
  "https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png",
  "altText": "Chat app avatar"
}
decoratedText

object (DecoratedText)

Hiển thị một mục văn bản được trang trí.

Ví dụ: JSON sau đây tạo một tiện ích văn bản được trang trí cho thấy địa chỉ email:

"decoratedText": {
  "icon": {
    "knownIcon": "EMAIL"
  },
  "topLabel": "Email Address",
  "text": "sasha@example.com",
  "bottomLabel": "This is a new Email address!",
  "switchControl": {
    "name": "has_send_welcome_email_to_sasha",
    "selected": false,
    "controlType": "CHECKBOX"
  }
}
buttonList

object (ButtonList)

Danh sách các nút.

Ví dụ: JSON sau đây tạo hai nút. Nút đầu tiên là nút văn bản màu xanh dương và nút thứ hai là nút hình ảnh mở ra một đường liên kết:

"buttonList": {
  "buttons": [
    {
      "text": "Edit",
      "color": {
        "red": 0,
        "green": 0,
        "blue": 1,
      },
      "disabled": true,
    },
    {
      "icon": {
        "knownIcon": "INVITE",
        "altText": "check calendar"
      },
      "onClick": {
        "openLink": {
          "url": "https://example.com/calendar"
        }
      }
    }
  ]
}
textInput

object (TextInput)

Hiển thị hộp văn bản mà người dùng có thể nhập vào.

Ví dụ: JSON sau đây tạo một mục nhập văn bản cho địa chỉ email:

"textInput": {
  "name": "mailing_address",
  "label": "Mailing Address"
}

Trong một ví dụ khác, JSON sau đây tạo một mục nhập văn bản cho ngôn ngữ lập trình có các đề xuất tĩnh:

"textInput": {
  "name": "preferred_programing_language",
  "label": "Preferred Language",
  "initialSuggestions": {
    "items": [
      {
        "text": "C++"
      },
      {
        "text": "Java"
      },
      {
        "text": "JavaScript"
      },
      {
        "text": "Python"
      }
    ]
  }
}
selectionInput

object (SelectionInput)

Hiển thị một thành phần điều khiển lựa chọn cho phép người dùng chọn các mục. Thành phần điều khiển lựa chọn có thể là hộp đánh dấu, nút chọn, nút chuyển hoặc trình đơn thả xuống.

Ví dụ: JSON sau đây tạo một trình đơn thả xuống cho phép người dùng chọn kích thước:

"selectionInput": {
  "name": "size",
  "label": "Size"
  "type": "DROPDOWN",
  "items": [
    {
      "text": "S",
      "value": "small",
      "selected": false
    },
    {
      "text": "M",
      "value": "medium",
      "selected": true
    },
    {
      "text": "L",
      "value": "large",
      "selected": false
    },
    {
      "text": "XL",
      "value": "extra_large",
      "selected": false
    }
  ]
}
dateTimePicker

object (DateTimePicker)

Hiển thị một tiện ích cho phép người dùng nhập ngày, giờ hoặc ngày và giờ.

Ví dụ: JSON sau đây tạo một bộ chọn ngày giờ để lên lịch hẹn:

"dateTimePicker": {
  "name": "appointment_time",
  "label": "Book your appointment at:",
  "type": "DATE_AND_TIME",
  "valueMsEpoch": 796435200000
}
divider

object (Divider)

Hiển thị đường phân chia ngang giữa các tiện ích.

Ví dụ: JSON sau đây tạo một đường phân chia:

"divider": {
}
grid

object (Grid)

Hiển thị lưới có một tập hợp các mục.

Lưới hỗ trợ số lượng cột và mục bất kỳ. Số hàng được xác định bằng giới hạn trên của số lượng mặt hàng chia cho số cột. Một lưới có 10 mục và 2 cột sẽ có 5 hàng. Một lưới có 11 mục và 2 cột sẽ có 6 hàng.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Ví dụ: JSON sau đây tạo một lưới 2 cột với một mục duy nhất:

"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"
    }
  }
}
columns

object (Columns)

Hiển thị tối đa 2 cột.

Để thêm nhiều hơn 2 cột hoặc để sử dụng hàng, hãy dùng tiện ích Grid.

Ví dụ: JSON sau đây tạo 2 cột, mỗi cột chứa các đoạn văn bản:

"columns": {
  "columnItems": [
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "First column text paragraph"
          }
        }
      ]
    },
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "Second column text paragraph"
          }
        }
      ]
    }
  ]
}
carousel

object (Carousel)

Chứa một tập hợp các mục CarouselCard, mỗi mục chứa các tiện ích lồng nhau. Ví dụ: đây là bản trình bày JSON của một băng chuyền chứa hai thẻ băng chuyền, mỗi thẻ có một đoạn văn bản:

{
  "carouselCards": [
    {
      "widgets": [
        {
          "textParagraph": {
            "text": "First text paragraph in the carousel."
          }
        }
      ]
    },
    {
      "widgets": [
        {
          "textParagraph": {
            "text": "Second text paragraph in the carousel."
          }
        }
      ]
    }
  ]
}
chipList

object (ChipList)

Danh sách khối.

Ví dụ: JSON sau đây tạo hai khối. Đầu tiên là khối văn bản và thứ hai là khối biểu tượng mở một đường liên kết:

"chipList": {
  "chips": [
    {
      "label": "Edit",
      "disabled": true
    },
    {
      "icon": {
        "knownIcon": "INVITE",
        "altText": "check calendar"
      },
      "onClick": {
        "openLink": {
          "url": "https://example.com/calendar"
        }
      }
    }
  ]
}
Kết thúc các trường loại trừ lẫn nhau.

TextParagraph

Một đoạn văn bản hỗ trợ định dạng. Để xem ví dụ về các ứng dụng Google Chat, hãy xem phần Thêm một đoạn văn bản được định dạng. Để biết thêm thông tin về cách định dạng văn bản, hãy xem bài viết Định dạng văn bản trong ứng dụng Google Chat và Định dạng văn bản trong tiện ích bổ sung của Google Workspace.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "text": string,
  "maxLines": integer,
  "textSyntax": enum (TextSyntax)
}
Trường
text

string

Văn bản xuất hiện trong tiện ích.

maxLines

integer

Số dòng văn bản tối đa hiển thị trong tiện ích. Nếu văn bản vượt quá số dòng tối đa được chỉ định, thì nội dung thừa sẽ bị ẩn sau nút hiện thêm. Nếu văn bản bằng hoặc ngắn hơn số dòng tối đa được chỉ định, thì nút hiện thêm sẽ không xuất hiện.

Giá trị mặc định là 0, trong trường hợp đó, tất cả bối cảnh sẽ được hiển thị. Giá trị âm sẽ bị bỏ qua.

textSyntax

enum (TextSyntax)

Cú pháp của văn bản. Nếu bạn không đặt, văn bản sẽ được hiển thị dưới dạng HTML.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

TextSyntax

Cú pháp dùng để định dạng văn bản.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Enum
TEXT_SYNTAX_UNSPECIFIED Văn bản được hiển thị dưới dạng HTML nếu không được chỉ định.
HTML Văn bản được hiển thị dưới dạng HTML. Đây là giá trị mặc định.
MARKDOWN Văn bản được hiển thị dưới dạng Markdown.

Hình ảnh

Hình ảnh được chỉ định bằng một URL và có thể có thao tác onClick. Để biết ví dụ, hãy xem phần Thêm hình ảnh.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "imageUrl": string,
  "onClick": {
    object (OnClick)
  },
  "altText": string
}
Trường
imageUrl

string

URL loại HTTPS lưu trữ hình ảnh.

Ví dụ:

https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
onClick

object (OnClick)

Khi người dùng nhấp vào hình ảnh, lượt nhấp sẽ kích hoạt hành động này.

altText

string

Văn bản thay thế của hình ảnh này được dùng cho mục đích hỗ trợ tiếp cận.

DecoratedText

Một tiện ích hiển thị văn bản có các thành phần trang trí không bắt buộc, chẳng hạn như nhãn phía trên hoặc phía dưới văn bản, biểu tượng phía trước văn bản, tiện ích lựa chọn hoặc nút sau văn bản. Để xem ví dụ về ứng dụng Google Chat, hãy xem phần Hiển thị văn bản có văn bản trang trí.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "icon": {
    object (Icon)
  },
  "startIcon": {
    object (Icon)
  },
  "startIconVerticalAlignment": enum (VerticalAlignment),
  "topLabel": string,
  "topLabelText": {
    object (TextParagraph)
  },
  "text": string,
  "contentText": {
    object (TextParagraph)
  },
  "wrapText": boolean,
  "bottomLabel": string,
  "bottomLabelText": {
    object (TextParagraph)
  },
  "onClick": {
    object (OnClick)
  },

  "button": {
    object (Button)
  },
  "switchControl": {
    object (SwitchControl)
  },
  "endIcon": {
    object (Icon)
  }
}
Trường
icon
(deprecated)

object (Icon)

Ngừng sử dụng và thay bằng startIcon.

startIcon

object (Icon)

Biểu tượng xuất hiện trước văn bản.

startIconVerticalAlignment

enum (VerticalAlignment)

Không bắt buộc. Căn chỉnh dọc biểu tượng bắt đầu. Nếu bạn không đặt, biểu tượng sẽ được căn giữa theo chiều dọc.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

topLabel

string

Văn bản xuất hiện phía trên text. Luôn cắt bớt.

topLabelText

object (TextParagraph)

TextParagraph tương đương với topLabel. Luôn cắt bớt. Cho phép định dạng phức tạp hơn topLabel.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

text

string

Bắt buộc. Văn bản chính.

Hỗ trợ định dạng đơn giản. Để biết thêm thông tin về cách định dạng văn bản, hãy xem bài viết Định dạng văn bản trong ứng dụng Google Chat và Định dạng văn bản trong tiện ích bổ sung của Google Workspace.

contentText

object (TextParagraph)

TextParagraph tương đương với text. Cho phép định dạng phức tạp hơn text.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

wrapText

boolean

Chế độ cài đặt xuống dòng tự động. Nếu true, văn bản sẽ xuống dòng và hiển thị trên nhiều dòng. Nếu không, văn bản sẽ bị cắt bớt.

Chỉ áp dụng cho text, không áp dụng cho topLabel và bottomLabel.

bottomLabel

string

Văn bản xuất hiện bên dưới text. Luôn xuống dòng.

bottomLabelText

object (TextParagraph)

TextParagraph tương đương với bottomLabel. Luôn xuống dòng. Cho phép định dạng phức tạp hơn bottomLabel.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

onClick

object (OnClick)

Hành động này được kích hoạt khi người dùng nhấp vào bất kỳ vị trí nào trên tiện ích DecoratedText (bao gồm cả text, topLabel, bottomLabel và biểu tượng), ngoại trừ khi nhấp vào một thành phần điều khiển tương tác riêng biệt (button hoặc switchControl).

Một nút, nút chuyển, hộp đánh dấu hoặc hình ảnh xuất hiện ở bên phải văn bản trong tiện ích decoratedText. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
button

object (Button)

Nút mà người dùng có thể nhấp vào để kích hoạt một hành động.

switchControl

object (SwitchControl)

Một tiện ích nút chuyển mà người dùng có thể nhấp vào để thay đổi trạng thái và kích hoạt một hành động.

endIcon

object (Icon)

Biểu tượng xuất hiện sau văn bản.

Hỗ trợ biểu tượng tích hợp sẵn và biểu tượng tuỳ chỉnh.

Kết thúc các trường loại trừ lẫn nhau.

VerticalAlignment

Đại diện cho thuộc tính căn chỉnh dọc.

Enum
VERTICAL_ALIGNMENT_UNSPECIFIED Loại không xác định. Không được dùng.
TOP Căn chỉnh theo vị trí trên cùng.
MIDDLE Căn chỉnh theo vị trí giữa.
BOTTOM Căn chỉnh theo vị trí dưới cùng.

SwitchControl

Nút chuyển kiểu bật/tắt hoặc hộp đánh dấu bên trong tiện ích decoratedText.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Chỉ được hỗ trợ trong tiện ích decoratedText.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "value": string,
  "selected": boolean,
  "onChangeAction": {
    object (Action)
  },
  "controlType": enum (ControlType)
}
Trường
name

string

Tên mà tiện ích nút chuyển được xác định trong sự kiện nhập biểu mẫu (dưới dạng khoá trong CommonEventObject.form_inputs).

Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

value

string

Giá trị được trả về trong CommonEventObject.form_inputs[name].string_inputs khi nút chuyển được chọn (selected là true). Nếu selected là true và value chưa được đặt, thì một chuỗi trống ("") sẽ được trả về trong stringInputs.value. Khi selected là false, giá trị này sẽ bị bỏ qua khỏi stringInputs.value.

Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

selected

boolean

Khi true, nút chuyển được chọn và value của nút chuyển được đưa vào CommonEventObject.form_inputs[name].string_inputs.value.

onChangeAction

object (Action)

Thao tác cần thực hiện khi trạng thái của nút chuyển thay đổi, chẳng hạn như hàm cần chạy.

controlType

enum (ControlType)

Cách nút chuyển xuất hiện trong giao diện người dùng.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

ControlType

Cách nút chuyển xuất hiện trong giao diện người dùng.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
SWITCH Nút bật/tắt.
CHECKBOX Ngừng sử dụng và thay bằng CHECK_BOX.
CHECK_BOX Hộp đánh dấu.

TextInput

Trường mà người dùng có thể nhập văn bản. Hỗ trợ các đề xuất và hành động khi thay đổi. Hỗ trợ xác thực việc gửi biểu mẫu. Khi Action.all_widgets_are_required được đặt thành true hoặc tiện ích này được chỉ định trong Action.required_widgets, hành động gửi sẽ bị chặn trừ phi bạn nhập một giá trị. Để xem ví dụ về các ứng dụng Google Chat, hãy xem phần Thêm trường mà người dùng có thể nhập văn bản.

Ứng dụng trò chuyện nhận và có thể xử lý giá trị của văn bản đã nhập trong các sự kiện nhập biểu mẫu. Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

Khi bạn cần thu thập dữ liệu trừu tượng hoặc không xác định từ người dùng, hãy sử dụng phương thức nhập văn bản. Để thu thập dữ liệu đã xác định hoặc liệt kê từ người dùng, hãy sử dụng tiện ích SelectionInput.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "label": string,
  "hintText": string,
  "value": string,
  "type": enum (Type),
  "onChangeAction": {
    object (Action)
  },
  "initialSuggestions": {
    object (Suggestions)
  },
  "autoCompleteAction": {
    object (Action)
  },
  "validation": {
    object (Validation)
  },
  "placeholderText": string,

  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
}
Trường
name

string

Tên dùng để xác định dữ liệu nhập bằng văn bản trong một sự kiện nhập dữ liệu vào biểu mẫu.

Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

label

string

Văn bản xuất hiện phía trên trường nhập dữ liệu trong giao diện người dùng.

Chỉ định văn bản giúp người dùng nhập thông tin mà ứng dụng của bạn cần. Ví dụ: nếu bạn đang hỏi tên của ai đó nhưng cần biết chính xác họ của người đó, hãy viết surname thay vì name.

Bắt buộc nếu bạn không chỉ định hintText. Nếu không, bạn không bắt buộc phải cung cấp.

hintText

string

Văn bản xuất hiện bên dưới trường nhập văn bản nhằm hỗ trợ người dùng bằng cách nhắc họ nhập một giá trị nhất định. Văn bản này luôn hiển thị.

Bắt buộc nếu bạn không chỉ định label. Nếu không, bạn không bắt buộc phải cung cấp.

value

string

Giá trị do người dùng nhập, được trả về dưới dạng một phần của sự kiện nhập biểu mẫu.

Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

type

enum (Type)

Cách trường nhập dữ liệu xuất hiện trong giao diện người dùng. Ví dụ: liệu trường đó là một dòng hay nhiều dòng.

onChangeAction

object (Action)

Việc cần làm khi có thay đổi trong trường nhập dữ liệu. Ví dụ: người dùng thêm vào trường hoặc xoá văn bản.

Ví dụ về các hành động cần thực hiện bao gồm chạy một hàm tuỳ chỉnh hoặc mở một hộp thoại trong Google Chat.

initialSuggestions

object (Suggestions)

Giá trị đề xuất mà người dùng có thể nhập. Các giá trị này xuất hiện khi người dùng nhấp vào bên trong trường nhập dữ liệu. Khi người dùng nhập, các giá trị được đề xuất sẽ tự động lọc để khớp với nội dung người dùng đã nhập.

Ví dụ: một trường nhập dữ liệu cho ngôn ngữ lập trình có thể đề xuất Java, JavaScript, Python và C++. Khi người dùng bắt đầu nhập Jav, danh sách đề xuất sẽ lọc để chỉ hiển thị Java và JavaScript.

Giá trị đề xuất giúp hướng dẫn người dùng nhập các giá trị mà ứng dụng của bạn có thể hiểu được. Khi đề cập đến JavaScript, một số người dùng có thể nhập javascript và những người khác nhập java script. Việc đề xuất JavaScript có thể chuẩn hoá cách người dùng tương tác với ứng dụng của bạn.

Khi được chỉ định, TextInput.type luôn là SINGLE_LINE, ngay cả khi được đặt thành MULTIPLE_LINE.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

autoCompleteAction

object (Action)

Không bắt buộc. Chỉ định hành động cần thực hiện khi trường nhập dữ liệu văn bản đưa ra đề xuất cho người dùng tương tác với trường đó.

Nếu không được chỉ định, các đề xuất sẽ do initialSuggestions đặt và được ứng dụng xử lý.

Nếu được chỉ định, ứng dụng sẽ thực hiện hành động được chỉ định tại đây, chẳng hạn như chạy một hàm tuỳ chỉnh.

Có trong các tiện ích bổ sung của Google Workspace và không có trong các ứng dụng Google Chat.

validation

object (Validation)

Chỉ định quy trình xác thực định dạng đầu vào cần thiết cho trường văn bản này.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

placeholderText

string

Văn bản xuất hiện trong trường nhập dữ liệu khi trường này trống. Sử dụng văn bản này để nhắc người dùng nhập một giá trị. Ví dụ: Enter a number from 0 to 100.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
hostAppDataSource

object (HostAppDataSourceMarkup)

Một nguồn dữ liệu dành riêng cho một ứng dụng lưu trữ của Google Workspace, chẳng hạn như email trong Gmail, sự kiện trên Lịch Google hoặc tin nhắn trò chuyện trong Google Chat.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Kết thúc các trường loại trừ lẫn nhau.

Loại

Cách trường nhập dữ liệu xuất hiện trong giao diện người dùng. Ví dụ: trường nhập dữ liệu một dòng hay nhiều dòng. Nếu bạn chỉ định initialSuggestions, thì type luôn là SINGLE_LINE, ngay cả khi được đặt thành MULTIPLE_LINE.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
SINGLE_LINE Trường nhập dữ liệu có chiều cao cố định là một dòng.
MULTIPLE_LINE Trường nhập dữ liệu văn bản có chiều cao cố định gồm nhiều dòng.

RenderActions

Một tập hợp các hướng dẫn kết xuất cho thẻ biết cách thực hiện một hành động hoặc cho ứng dụng lưu trữ tiện ích bổ sung hoặc ứng dụng Chat biết cách thực hiện một hành động dành riêng cho ứng dụng.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Trường
action

Action

Hành động

Trường
navigations[]

Navigation

Đẩy, bật lên hoặc cập nhật thẻ.

Tiện ích bổ sung trong Google Chat.

Thêm một thẻ mới vào ngăn xếp (di chuyển về phía trước). Đối với ứng dụng Chat, chỉ có thể dùng cho trang chủ của ứng dụng.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

navigations: {
  pushCard: CARD
}

Thay thế thẻ trên cùng bằng một thẻ mới. Đối với ứng dụng Chat, chỉ có thể dùng cho trang chủ của ứng dụng.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

navigations: {
  updateCard: CARD
}

Nội dung đề xuất

Giá trị đề xuất mà người dùng có thể nhập. Các giá trị này xuất hiện khi người dùng nhấp vào bên trong trường nhập dữ liệu. Khi người dùng nhập, các giá trị được đề xuất sẽ tự động lọc để khớp với nội dung người dùng đã nhập.

Ví dụ: một trường nhập dữ liệu cho ngôn ngữ lập trình có thể đề xuất Java, JavaScript, Python và C++. Khi người dùng bắt đầu nhập Jav, danh sách đề xuất sẽ lọc để hiển thị Java và JavaScript.

Giá trị đề xuất giúp hướng dẫn người dùng nhập các giá trị mà ứng dụng của bạn có thể hiểu được. Khi đề cập đến JavaScript, một số người dùng có thể nhập javascript và những người khác nhập java script. Việc đề xuất JavaScript có thể chuẩn hoá cách người dùng tương tác với ứng dụng của bạn.

Khi được chỉ định, TextInput.type luôn là SINGLE_LINE, ngay cả khi được đặt thành MULTIPLE_LINE.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "items": [
    {
      object (SuggestionItem)
    }
  ]
}
Trường
items[]

object (SuggestionItem)

Danh sách các đề xuất dùng cho tính năng tự động hoàn thành trong các trường nhập văn bản.

SuggestionItem

Một giá trị đề xuất mà người dùng có thể nhập vào trường nhập dữ liệu.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{

  "text": string
}
Trường
Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
text

string

Giá trị của dữ liệu đầu vào được đề xuất cho trường nhập dữ liệu văn bản. Điều này tương đương với những gì người dùng tự nhập.

Kết thúc các trường loại trừ lẫn nhau.

Xác thực

Biểu thị dữ liệu cần thiết để xác thực tiện ích mà dữ liệu này được đính kèm.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "characterLimit": integer,
  "inputType": enum (InputType)
}
Trường
characterLimit

integer

Chỉ định giới hạn ký tự cho các tiện ích nhập văn bản. Xin lưu ý rằng thuộc tính này chỉ được dùng cho phương thức nhập văn bản và bị bỏ qua đối với các tiện ích khác.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

inputType

enum (InputType)

Chỉ định loại tiện ích nhập.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

InputType

Loại tiện ích nhập dữ liệu.

Enum
INPUT_TYPE_UNSPECIFIED Loại không xác định. Không được dùng.
TEXT Văn bản thông thường chấp nhận tất cả ký tự.
INTEGER Một giá trị số nguyên.
FLOAT Giá trị số thực.
EMAIL Địa chỉ email.
EMOJI_PICKER Một biểu tượng cảm xúc được chọn từ bộ chọn biểu tượng cảm xúc do hệ thống cung cấp.

HostAppDataSourceMarkup

Nguồn dữ liệu từ một ứng dụng Google Workspace. Nguồn dữ liệu điền sẵn các mục có sẵn cho một tiện ích.

Biểu diễn dưới dạng JSON
{

  "chatDataSource": {
    object (ChatClientDataSourceMarkup)
  },
  "workflowDataSource": {
    object (WorkflowDataSourceMarkup)
  }
}
Trường
Ứng dụng Google Workspace điền sẵn các mục có sẵn cho một tiện ích. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
chatDataSource

object (ChatClientDataSourceMarkup)

Nguồn dữ liệu từ Google Chat.

workflowDataSource

object (WorkflowDataSourceMarkup)

Một nguồn dữ liệu từ Google Workflow.

Kết thúc các trường loại trừ lẫn nhau.

ChatClientDataSourceMarkup

Đối với tiện ích SelectionInput sử dụng trình đơn nhiều lựa chọn, nguồn dữ liệu từ Google Chat. Nguồn dữ liệu điền sẵn các mục lựa chọn cho trình đơn nhiều lựa chọn. Ví dụ: người dùng có thể chọn các không gian trong Google Chat mà họ là thành viên.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{

  "spaceDataSource": {
    object (SpaceDataSource)
  }
}
Trường
Nguồn dữ liệu Google Chat. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
spaceDataSource

object (SpaceDataSource)

Các không gian trong Google Chat mà người dùng là thành viên.

Kết thúc các trường loại trừ lẫn nhau.

SpaceDataSource

Một nguồn dữ liệu điền sẵn các không gian trong Google Chat dưới dạng các mục lựa chọn cho trình đơn chọn nhiều mục. Chỉ điền sẵn những không gian mà người dùng là thành viên.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "defaultToCurrentSpace": boolean
}
Trường
defaultToCurrentSpace

boolean

Nếu bạn đặt thành true, thì trình đơn nhiều lựa chọn sẽ chọn không gian Google Chat hiện tại làm một mục theo mặc định.

WorkflowDataSourceMarkup

* Chỉ được hỗ trợ bởi Quy trình công việc của Google Workspace, chứ không phải ứng dụng Google Chat hoặc tiện ích bổ sung của Google Workspace.

Trong tiện ích TextInput hoặc SelectionInput có loại MULTI_SELECT hoặc DateTimePicker, hãy cung cấp nguồn dữ liệu của Google.

Biểu diễn dưới dạng JSON
{
  "includeVariables": boolean,
  "type": enum (Type)
}
Trường
includeVariables

boolean

Có đưa các biến từ bước trước vào nguồn dữ liệu hay không.

type

enum (Type)

Loại nguồn dữ liệu.

Loại

Một enum đại diện cho loại nguồn dữ liệu của quy trình công việc.

Enum
UNKNOWN Giá trị mặc định. Đừng sử dụng.
USER Người dùng Google Workspace. Người dùng chỉ có thể xem và chọn người dùng trong tổ chức Google Workspace của họ.
SPACE Các không gian trong Google Chat mà người dùng là thành viên.
USER_WITH_FREE_FORM Người dùng có thể chọn xem và chọn thành viên hiện có trong tổ chức Google Workspace của họ hoặc nhập địa chỉ email hoặc miền hợp lệ theo cách thủ công.

SelectionInput

Một tiện ích tạo một hoặc nhiều mục trên giao diện người dùng mà người dùng có thể chọn. Chỉ hỗ trợ xác thực việc gửi biểu mẫu cho trình đơn dropdown và multiselect. Khi Action.all_widgets_are_required được đặt thành true hoặc tiện ích này được chỉ định trong Action.required_widgets, hành động gửi sẽ bị chặn trừ phi bạn chọn một giá trị. Ví dụ: trình đơn thả xuống hoặc hộp đánh dấu. Bạn có thể sử dụng tiện ích này để thu thập dữ liệu có thể dự đoán hoặc liệt kê. Để xem ví dụ về các ứng dụng Google Chat, hãy xem bài viết Thêm các phần tử trên giao diện người dùng có thể chọn.

Ứng dụng Chat có thể xử lý giá trị của các mục mà người dùng chọn hoặc nhập. Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

Để thu thập dữ liệu không xác định hoặc dữ liệu trừu tượng từ người dùng, hãy sử dụng tiện ích TextInput.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "label": string,
  "type": enum (SelectionType),
  "items": [
    {
      object (SelectionItem)
    }
  ],
  "onChangeAction": {
    object (Action)
  },
  "multiSelectMinQueryLength": integer,
  "dataSourceConfigs": [
    {
      object (DataSourceConfig)
    }
  ],
  "multiSelectMaxSelectedItems": integer,
  "hintText": string,

  "externalDataSource": {
    object (Action)
  },
  "platformDataSource": {
    object (PlatformDataSource)
  }
}
Trường
name

string

Bắt buộc. Tên xác định dữ liệu đầu vào của lựa chọn trong một sự kiện nhập biểu mẫu.

Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

label

string

Văn bản xuất hiện phía trên trường nhập dữ liệu lựa chọn trong giao diện người dùng.

Chỉ định văn bản giúp người dùng nhập thông tin mà ứng dụng của bạn cần. Ví dụ: nếu người dùng đang chọn mức độ khẩn cấp của một phiếu yêu cầu công việc trong trình đơn thả xuống, thì nhãn có thể là "Mức độ khẩn cấp" hoặc "Chọn mức độ khẩn cấp".

type

enum (SelectionType)

Loại mục hiển thị cho người dùng trong một tiện ích SelectionInput. Các loại lựa chọn hỗ trợ nhiều kiểu tương tác. Ví dụ: người dùng có thể chọn một hoặc nhiều hộp đánh dấu, nhưng họ chỉ có thể chọn một giá trị trong trình đơn thả xuống.

items[]

object (SelectionItem)

Một mảng các mục có thể chọn. Ví dụ: một mảng các nút chọn hoặc hộp đánh dấu. Hỗ trợ tối đa 100 mục.

onChangeAction

object (Action)

Nếu được chỉ định, biểu mẫu sẽ được gửi khi lựa chọn thay đổi. Nếu không chỉ định, bạn phải chỉ định một nút riêng để gửi biểu mẫu.

Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

multiSelectMinQueryLength

integer

Đối với trình đơn nhiều lựa chọn, đây là số ký tự văn bản mà người dùng nhập trước khi trình đơn trả về các mục lựa chọn được đề xuất.

Nếu bạn không đặt, trình đơn nhiều lựa chọn sẽ sử dụng các giá trị mặc định sau:

  • Nếu trình đơn sử dụng một mảng tĩnh gồm SelectionInput mục, thì giá trị mặc định là 0 ký tự và ngay lập tức điền các mục từ mảng.
  • Nếu trình đơn sử dụng nguồn dữ liệu động (multi_select_data_source), thì giá trị mặc định là 3 ký tự trước khi truy vấn nguồn dữ liệu để trả về các mục được đề xuất.
dataSourceConfigs[]

object (DataSourceConfig)

Không bắt buộc. Cấu hình nguồn dữ liệu cho thành phần điều khiển lựa chọn. Trường này giúp bạn kiểm soát nguồn dữ liệu một cách chi tiết hơn.

Nếu được chỉ định, trường multiSelectMaxSelectedItems, trường multiSelectMinQueryLength, trường externalDataSource và trường platformDataSource sẽ bị bỏ qua.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio.

Dùng được cho Dropdown widget trong các ứng dụng Google Chat. Đối với tiện ích Dropdown trong các ứng dụng Google Chat, chỉ có một DataSourceConfig được hỗ trợ. Nếu bạn đặt nhiều DataSourceConfig, thì chỉ đầu tiên được sử dụng.

multiSelectMaxSelectedItems

integer

Đối với trình đơn nhiều lựa chọn, đây là số lượng mục tối đa mà người dùng có thể chọn. Giá trị tối thiểu là 1 mặt hàng. Nếu không được chỉ định, thì giá trị mặc định là 3 mục.

hintText

string

Không bắt buộc. Văn bản xuất hiện bên dưới trường nhập dữ liệu lựa chọn nhằm hỗ trợ người dùng bằng cách nhắc họ nhập một giá trị nhất định. Văn bản này luôn hiển thị.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Đối với trình đơn nhiều lựa chọn, đây là nguồn dữ liệu tự động điền các mục lựa chọn.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:

externalDataSource

object (Action)

Nguồn dữ liệu bên ngoài, chẳng hạn như cơ sở dữ liệu quan hệ.

platformDataSource

object (PlatformDataSource)

Một nguồn dữ liệu từ Google Workspace.

Kết thúc các trường loại trừ lẫn nhau.

SelectionType

Định dạng cho các mục mà người dùng có thể chọn. Mỗi lựa chọn hỗ trợ các loại tương tác khác nhau. Ví dụ: người dùng có thể chọn nhiều hộp đánh dấu, nhưng chỉ có thể chọn một mục trong trình đơn thả xuống.

Mỗi dữ liệu đầu vào lựa chọn hỗ trợ một loại lựa chọn. Ví dụ: không hỗ trợ việc kết hợp hộp đánh dấu và nút chuyển.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
CHECK_BOX Một tập hợp các hộp đánh dấu. Người dùng có thể chọn một hoặc nhiều hộp đánh dấu.
RADIO_BUTTON Một nhóm nút chọn. Người dùng có thể chọn một nút chọn.
SWITCH Một bộ công tắc. Người dùng có thể bật một hoặc nhiều công tắc.
DROPDOWN

Trình đơn thả xuống. Người dùng có thể chọn một mục trong trình đơn.

Đối với ứng dụng Google Chat, bạn có thể điền các mục bằng nguồn dữ liệu động và tự động đề xuất các mục khi người dùng nhập vào trình đơn. Ví dụ: người dùng có thể bắt đầu nhập tên của một không gian trong Google Chat và tiện ích sẽ tự động đề xuất không gian đó. Để tự động điền các mục cho trình đơn thả xuống, hãy sử dụng một trong các loại nguồn dữ liệu sau:

  • Dữ liệu trên Google Workspace: Các mục được điền sẵn bằng dữ liệu trên Google Workspace, chẳng hạn như người dùng Google Workspace hoặc không gian trong Google Chat.
  • Dữ liệu bên ngoài: Các mục được điền sẵn từ một nguồn dữ liệu bên ngoài Google Workspace.

Để biết ví dụ về cách triển khai trình đơn thả xuống cho ứng dụng Chat, hãy xem bài viết Thêm trình đơn thả xuống và Điền sẵn trình đơn thả xuống một cách linh động.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

MULTI_SELECT

Một trình đơn có hộp văn bản. Người dùng có thể nhập và chọn một hoặc nhiều mục. Đối với các tiện ích bổ sung của Google Workspace, bạn phải điền các mục bằng một mảng tĩnh gồm các đối tượng SelectionItem.

Đối với ứng dụng Google Chat, bạn cũng có thể điền các mục bằng nguồn dữ liệu động và tự động đề xuất các mục khi người dùng nhập vào trình đơn. Ví dụ: người dùng có thể bắt đầu nhập tên của một không gian trong Google Chat và tiện ích sẽ tự động đề xuất không gian đó. Để tự động điền các mục cho trình đơn nhiều lựa chọn, hãy sử dụng một trong các loại nguồn dữ liệu sau:

  • Dữ liệu trên Google Workspace: Các mục được điền sẵn bằng dữ liệu trên Google Workspace, chẳng hạn như người dùng Google Workspace hoặc không gian trên Google Chat.
  • Dữ liệu bên ngoài: Các mục được điền sẵn từ một nguồn dữ liệu bên ngoài Google Workspace.

Để xem ví dụ về cách triển khai trình đơn nhiều lựa chọn cho ứng dụng Chat, hãy xem phần Thêm trình đơn nhiều lựa chọn.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

PlatformDataSource

Đối với tiện ích SelectionInput sử dụng trình đơn nhiều lựa chọn, nguồn dữ liệu từ Google Workspace. Dùng để điền sẵn các mục trong trình đơn nhiều lựa chọn.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{

  "commonDataSource": enum (CommonDataSource),
  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
}
Trường
Nguồn dữ liệu. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
commonDataSource

enum (CommonDataSource)

Một nguồn dữ liệu được tất cả các ứng dụng Google Workspace dùng chung, chẳng hạn như người dùng trong một tổ chức Google Workspace.

hostAppDataSource

object (HostAppDataSourceMarkup)

Một nguồn dữ liệu dành riêng cho một ứng dụng lưu trữ của Google Workspace, chẳng hạn như không gian trong Google Chat.

Trường này hỗ trợ Thư viện ứng dụng API của Google nhưng không có trong Thư viện ứng dụng Cloud. Để tìm hiểu thêm, hãy xem bài viết Cài đặt thư viện ứng dụng.

Kết thúc các trường loại trừ lẫn nhau.

CommonDataSource

Một nguồn dữ liệu được chia sẻ bởi tất cả ứng dụng Google Workspace.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Enum
UNKNOWN Giá trị mặc định. Đừng sử dụng.
USER Người dùng Google Workspace. Người dùng chỉ có thể xem và chọn người dùng trong tổ chức Google Workspace của họ.

DataSourceConfig

Đối tượng cấu hình giúp định cấu hình nguồn dữ liệu cho một tiện ích.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio.

Biểu diễn dưới dạng JSON
{

  "remoteDataSource": {
    object (Action)
  },
  "platformDataSource": {
    object (PlatformDataSource)
  }
  "minCharactersTrigger": integer
}
Trường
Nguồn dữ liệu. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
remoteDataSource

object (Action)

Dữ liệu này là của một nhà cung cấp dữ liệu từ xa.

platformDataSource

object (PlatformDataSource)

Dữ liệu này là từ một ứng dụng của Google Workspace.

Kết thúc các trường loại trừ lẫn nhau.
minCharactersTrigger

integer

Số ký tự tối thiểu mà người dùng phải nhập trước khi nhà cung cấp dữ liệu này được kích hoạt (tức là trước khi bắt đầu trả về kết quả).

DateTimePicker

Cho phép người dùng nhập ngày, giờ hoặc cả ngày và giờ. Hỗ trợ xác thực việc gửi biểu mẫu. Khi Action.all_widgets_are_required được đặt thành true hoặc tiện ích này được chỉ định trong Action.required_widgets, hành động gửi sẽ bị chặn trừ phi bạn chọn một giá trị. Để xem ví dụ về các ứng dụng Google Chat, hãy xem bài viết Cho phép người dùng chọn ngày và giờ.

Người dùng có thể nhập văn bản hoặc sử dụng bộ chọn để chọn ngày và giờ. Nếu người dùng nhập ngày hoặc giờ không hợp lệ, bộ chọn sẽ hiển thị lỗi nhắc người dùng nhập thông tin chính xác.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "label": string,
  "type": enum (DateTimePickerType),
  "valueMsEpoch": string,
  "timezoneOffsetDate": integer,
  "onChangeAction": {
    object (Action)
  },

  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
}
Trường
name

string

Tên mà DateTimePicker được xác định trong một sự kiện nhập biểu mẫu.

Để biết thông tin chi tiết về cách xử lý dữ liệu đầu vào của biểu mẫu, hãy xem phần Nhận dữ liệu biểu mẫu.

label

string

Văn bản nhắc người dùng nhập ngày, giờ hoặc ngày và giờ. Ví dụ: nếu người dùng đang lên lịch hẹn, hãy sử dụng nhãn như Appointment date hoặc Appointment date and time.

type

enum (DateTimePickerType)

Liệu tiện ích có hỗ trợ nhập ngày, giờ hoặc ngày và giờ hay không.

valueMsEpoch

string (int64 format)

Giá trị mặc định hiển thị trong tiện ích, tính bằng mili giây kể từ thời gian Unix.

Chỉ định giá trị dựa trên loại bộ chọn (DateTimePickerType):

  • DATE_AND_TIME: ngày và giờ theo lịch theo giờ UTC. Ví dụ: để biểu thị ngày 1 tháng 1 năm 2023 lúc 12:00 theo giờ UTC, hãy sử dụng 1672574400000.
  • DATE_ONLY: ngày theo lịch vào lúc 00:00:00 giờ UTC. Ví dụ: để biểu thị ngày 1 tháng 1 năm 2023, hãy sử dụng 1672531200000.
  • TIME_ONLY: thời gian theo giờ UTC. Ví dụ: để biểu thị 12:00 CH, hãy sử dụng 43200000 (hoặc 12 * 60 * 60 * 1000).
timezoneOffsetDate

integer

Số đại diện cho độ lệch múi giờ so với giờ UTC, tính bằng phút. Nếu bạn đặt chính sách này, thì valueMsEpoch sẽ hiển thị theo múi giờ được chỉ định. Nếu bạn không đặt, giá trị này sẽ mặc định là chế độ cài đặt múi giờ của người dùng.

Lưu ý: Trường này được tính bằng phút, trong khi tải trọng sự kiện tương tác của người dùng thường cung cấp độ lệch múi giờ tính bằng mili giây (chia cho 60000 để chuyển đổi).

onChangeAction

object (Action)

Được kích hoạt khi người dùng nhấp vào Lưu hoặc Xoá trong giao diện DateTimePicker.

Nguồn dữ liệu được chỉ định để biểu thị ngày và giờ. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
hostAppDataSource

object (HostAppDataSourceMarkup)

Một nguồn dữ liệu dành riêng cho một ứng dụng lưu trữ của Google Workspace, chẳng hạn như email trong Gmail, sự kiện trên Lịch Google hoặc tin nhắn trò chuyện trong Google Chat.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Kết thúc các trường loại trừ lẫn nhau.

DateTimePickerType

Định dạng ngày và giờ trong tiện ích DateTimePicker. Xác định xem người dùng có thể nhập ngày, giờ hay cả ngày và giờ hay không.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
DATE_AND_TIME Người dùng nhập ngày và giờ.
DATE_ONLY Người dùng nhập ngày.
TIME_ONLY Người dùng nhập thời gian.

Dải phân cách

Loại này không có trường nào.

Hiển thị đường phân chia giữa các tiện ích dưới dạng đường ngang. Để xem ví dụ về ứng dụng Google Chat, hãy xem phần Thêm đường phân chia ngang giữa các tiện ích.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Ví dụ: JSON sau đây tạo một đường phân chia:

"divider": {}

Lưới

Hiển thị lưới có một tập hợp các mục. Các mục chỉ được chứa văn bản hoặc hình ảnh. Đối với các cột thích ứng hoặc để thêm nhiều nội dung hơn ngoài văn bản hoặc hình ảnh, hãy sử dụng Columns. Để xem ví dụ về ứng dụng Google Chat, hãy xem phần Hiển thị lưới có tập hợp các mục.

Lưới hỗ trợ số lượng cột và mục bất kỳ. Số hàng được xác định bằng cách lấy số mục chia cho số cột. Một lưới có 10 mục và 2 cột sẽ có 5 hàng. Một lưới có 11 mục và 2 cột sẽ có 6 hàng.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Ví dụ: JSON sau đây tạo một lưới 2 cột với một mục duy nhất:

"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"
    }
  }
}
Biểu diễn dưới dạng JSON
{
  "title": string,
  "items": [
    {
      object (GridItem)
    }
  ],
  "borderStyle": {
    object (BorderStyle)
  },
  "columnCount": integer,
  "onClick": {
    object (OnClick)
  }
}
Trường
title

string

Văn bản xuất hiện trong tiêu đề lưới.

items[]

object (GridItem)

Các mục cần hiển thị trong lưới.

borderStyle

object (BorderStyle)

Kiểu đường viền để áp dụng cho từng mục trong lưới.

columnCount

integer

Số cột cần hiển thị trong lưới. Giá trị mặc định sẽ được sử dụng nếu bạn không chỉ định trường này và giá trị mặc định đó sẽ khác nhau tuỳ thuộc vào vị trí hiển thị lưới (hộp thoại so với quảng cáo đồng hành).

onClick

object (OnClick)

Mỗi mục riêng lẻ trong lưới sẽ sử dụng lại lệnh gọi lại này, nhưng giá trị nhận dạng của mục sẽ được thêm vào các tham số của lệnh gọi lại (trong khoá "grid_item_identifier").

GridItem

Đại diện cho một mục trong bố cục lưới. Các mục có thể chứa văn bản, hình ảnh hoặc cả văn bản và hình ảnh.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "id": string,
  "image": {
    object (ImageComponent)
  },
  "title": string,
  "subtitle": string,
  "layout": enum (GridItemLayout)
}
Trường
id

string

Giá trị nhận dạng do người dùng chỉ định cho mục lưới này. Giá trị nhận dạng này được trả về trong các tham số gọi lại onClick của lưới mẹ.

image

object (ImageComponent)

Hình ảnh hiển thị trong mục lưới.

title

string

Tiêu đề của mục trong lưới.

subtitle

string

Phụ đề của mục trong lưới.

layout

enum (GridItemLayout)

Bố cục dùng cho mục trong lưới.

ImageComponent

Đại diện cho một hình ảnh.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "imageUri": string,
  "altText": string,
  "cropStyle": {
    object (ImageCropStyle)
  },
  "borderStyle": {
    object (BorderStyle)
  }
}
Trường
imageUri

string

URL hình ảnh.

altText

string

Nhãn hỗ trợ tiếp cận cho hình ảnh.

cropStyle

object (ImageCropStyle)

Kiểu cắt để áp dụng cho hình ảnh.

borderStyle

object (BorderStyle)

Kiểu đường viền sẽ áp dụng cho hình ảnh.

ImageCropStyle

Biểu thị kiểu cắt được áp dụng cho hình ảnh.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Ví dụ: sau đây là cách áp dụng tỷ lệ khung hình 16:9:

cropStyle {
 "type": "RECTANGLE_CUSTOM",
 "aspectRatio": 16/9
}
Biểu diễn dưới dạng JSON
{
  "type": enum (ImageCropType),
  "aspectRatio": number
}
Trường
type

enum (ImageCropType)

Loại cây trồng.

aspectRatio

number

Tỷ lệ khung hình cần sử dụng nếu loại cắt là RECTANGLE_CUSTOM.

Ví dụ: sau đây là cách áp dụng tỷ lệ khung hình 16:9:

cropStyle {
 "type": "RECTANGLE_CUSTOM",
 "aspectRatio": 16/9
}

ImageCropType

Biểu thị kiểu cắt được áp dụng cho hình ảnh.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
IMAGE_CROP_TYPE_UNSPECIFIED Đừng sử dụng. Không xác định.
SQUARE Giá trị mặc định. Áp dụng thao tác cắt hình vuông.
CIRCLE Áp dụng thao tác cắt hình tròn.
RECTANGLE_CUSTOM Cắt hình chữ nhật theo tỷ lệ khung hình tuỳ chỉnh. Đặt tỷ lệ khung hình tuỳ chỉnh bằng aspectRatio.
RECTANGLE_4_3 Cắt hình chữ nhật theo tỷ lệ khung hình 4:3.

BorderStyle

Các lựa chọn về kiểu cho đường viền của thẻ hoặc tiện ích, bao gồm cả loại và màu đường viền.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "type": enum (BorderType),
  "strokeColor": {
    object (Color)
  },
  "cornerRadius": integer
}
Trường
type

enum (BorderType)

Loại đường viền.

strokeColor

object (Color)

Màu sắc cần sử dụng khi loại là BORDER_TYPE_STROKE.

Để đặt màu nét vẽ, hãy chỉ định một giá trị cho các trường red, green và blue. Giá trị này phải là số thực từ 0 đến 1 dựa trên giá trị màu RGB, trong đó 0 (0/255) thể hiện không có màu và 1 (255/255) thể hiện cường độ tối đa của màu.

Ví dụ: đoạn mã sau đây đặt màu đỏ ở cường độ tối đa:

"color": {
   "red": 1,
   "green": 0,
   "blue": 0,
}

Trường alpha không dùng được cho màu nét vẽ. Nếu được chỉ định, trường này sẽ bị bỏ qua.

cornerRadius

integer

Bán kính góc cho đường viền.

BorderType

Biểu thị các loại đường viền được áp dụng cho tiện ích.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
BORDER_TYPE_UNSPECIFIED Đừng sử dụng. Không xác định.
NO_BORDER Không có đường viền.
STROKE Giá trị mặc định. Outline.

GridItemLayout

Đại diện cho nhiều lựa chọn bố cục có sẵn cho một mục trong lưới.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
GRID_ITEM_LAYOUT_UNSPECIFIED Đừng sử dụng. Không xác định.
TEXT_BELOW Tiêu đề và phụ đề xuất hiện bên dưới hình ảnh của mục trong lưới.
TEXT_ABOVE Tiêu đề và phụ đề xuất hiện phía trên hình ảnh của mục trong lưới.

Cột

Tiện ích Columns hiển thị tối đa 2 cột trong một thẻ hoặc hộp thoại. Bạn có thể thêm tiện ích vào mỗi cột; các tiện ích sẽ xuất hiện theo thứ tự được chỉ định. Để xem ví dụ về ứng dụng Google Chat, hãy xem bài viết Hiển thị thẻ và hộp thoại theo cột.

Chiều cao của mỗi cột được xác định theo cột cao hơn. Ví dụ: nếu cột đầu tiên cao hơn cột thứ hai, thì cả hai cột đều có chiều cao của cột đầu tiên. Vì mỗi cột có thể chứa số lượng tiện ích khác nhau, nên bạn không thể xác định hàng hoặc căn chỉnh tiện ích giữa các cột.

Các cột được hiển thị cạnh nhau. Bạn có thể tuỳ chỉnh chiều rộng của từng cột bằng trường HorizontalSizeStyle. Nếu chiều rộng màn hình của người dùng quá hẹp, thì cột thứ hai sẽ xuống dòng bên dưới cột thứ nhất:

  • Trên web, cột thứ hai sẽ xuống dòng nếu chiều rộng màn hình nhỏ hơn hoặc bằng 480 pixel.
  • Trên thiết bị iOS, cột thứ hai sẽ xuống dòng nếu chiều rộng màn hình nhỏ hơn hoặc bằng 300 pt.
  • Trên thiết bị Android, cột thứ hai sẽ xuống dòng nếu chiều rộng màn hình nhỏ hơn hoặc bằng 320 dp.

Để thêm nhiều hơn hai cột hoặc để sử dụng hàng, hãy dùng tiện ích Grid.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace. Các giao diện người dùng của tiện ích bổ sung hỗ trợ cột bao gồm:

  • Hộp thoại xuất hiện khi người dùng mở tiện ích bổ sung từ một bản nháp email.
  • Hộp thoại xuất hiện khi người dùng mở tiện ích bổ sung từ trình đơn Thêm tệp đính kèm trong một sự kiện trên Lịch Google.
Biểu diễn dưới dạng JSON
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
Trường
columnItems[]

object (Column)

Một mảng các cột. Bạn có thể thêm tối đa 2 cột trong một thẻ hoặc hộp thoại.

Cột

Một cột.

Tiện ích bổ sung của Google Workspace và ứng dụng Chat

Biểu diễn dưới dạng JSON
{
  "horizontalSizeStyle": enum (HorizontalSizeStyle),
  "horizontalAlignment": enum (HorizontalAlignment),
  "verticalAlignment": enum (VerticalAlignment),
  "widgets": [
    {
      object (Widgets)
    }
  ]
}
Trường
horizontalSizeStyle

enum (HorizontalSizeStyle)

Chỉ định cách một cột lấp đầy chiều rộng của thẻ.

horizontalAlignment

enum (HorizontalAlignment)

Chỉ định xem các tiện ích có căn chỉnh sang trái, phải hay giữa cột hay không.

verticalAlignment

enum (VerticalAlignment)

Chỉ định xem các tiện ích có căn chỉnh theo đầu, cuối hay giữa cột hay không.

widgets[]

object (Widgets)

Một mảng các tiện ích có trong một cột. Tiện ích xuất hiện theo thứ tự được chỉ định.

HorizontalSizeStyle

Chỉ định cách một cột lấp đầy chiều rộng của thẻ. Chiều rộng của mỗi cột phụ thuộc vào cả HorizontalSizeStyle và chiều rộng của các tiện ích trong cột.

Tiện ích bổ sung của Google Workspace và ứng dụng Chat

Enum
HORIZONTAL_SIZE_STYLE_UNSPECIFIED Đừng sử dụng. Không xác định.
FILL_AVAILABLE_SPACE Giá trị mặc định. Cột lấp đầy không gian có sẵn, tối đa 70% chiều rộng của thẻ. Nếu cả hai cột đều được đặt thành FILL_AVAILABLE_SPACE, thì mỗi cột sẽ lấp đầy 50% không gian.
FILL_MINIMUM_SPACE Cột chiếm ít không gian nhất có thể và không quá 30% chiều rộng của thẻ.

HorizontalAlignment

Chỉ định xem các tiện ích có căn chỉnh sang trái, phải hay giữa cột hay không.

Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Enum
HORIZONTAL_ALIGNMENT_UNSPECIFIED Đừng sử dụng. Không xác định.
START Giá trị mặc định. Căn chỉnh các tiện ích theo vị trí bắt đầu của cột. Đối với bố cục từ trái sang phải, hãy căn chỉnh sang bên trái. Đối với bố cục từ phải sang trái, hãy căn chỉnh sang bên phải.
CENTER Căn chỉnh các tiện ích vào giữa cột.
END Căn chỉnh các tiện ích theo vị trí cuối của cột. Đối với bố cục từ trái sang phải, hãy căn chỉnh các tiện ích sang bên phải. Đối với bố cục từ phải sang trái, hãy căn chỉnh các tiện ích sang bên trái.

VerticalAlignment

Chỉ định xem các tiện ích có căn chỉnh theo đầu, cuối hay giữa cột hay không.

Tiện ích bổ sung của Google Workspace và ứng dụng Chat

Enum
VERTICAL_ALIGNMENT_UNSPECIFIED Đừng sử dụng. Không xác định.
CENTER Giá trị mặc định. Căn chỉnh các tiện ích vào giữa một cột.
TOP Căn chỉnh các tiện ích lên đầu cột.
BOTTOM Căn chỉnh các tiện ích xuống cuối cột.

Tiện ích

Các tiện ích được hỗ trợ mà bạn có thể đưa vào một cột.

Tiện ích bổ sung của Google Workspace và ứng dụng Chat

Biểu diễn dưới dạng JSON
{

  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "chipList": {
    object (ChipList)
  }
}
Trường
Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
textParagraph

object (TextParagraph)

TextParagraph tiện ích.

image

object (Image)

Image tiện ích.

decoratedText

object (DecoratedText)

DecoratedText tiện ích.

buttonList

object (ButtonList)

ButtonList tiện ích.

textInput

object (TextInput)

TextInput tiện ích.

selectionInput

object (SelectionInput)

SelectionInput tiện ích.

dateTimePicker

object (DateTimePicker)

DateTimePicker tiện ích.

chipList

object (ChipList)

ChipList tiện ích.

Kết thúc các trường loại trừ lẫn nhau.

ChipList

Danh sách các khối được bố trí theo chiều ngang, có thể cuộn theo chiều ngang hoặc xuống dòng tiếp theo.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "layout": enum (Layout),
  "chips": [
    {
      object (Chip)
    }
  ]
}
Trường
layout

enum (Layout)

Bố cục dạng danh sách khối được chỉ định.

chips[]

object (Chip)

Một mảng khối.

Bố cục

Bố cục dạng danh sách khối.

Enum
LAYOUT_UNSPECIFIED Đừng sử dụng. Không xác định.
WRAPPED Giá trị mặc định. Danh sách khối sẽ xuống dòng tiếp theo nếu không có đủ không gian theo chiều ngang.
HORIZONTAL_SCROLLABLE Khối có thể cuộn theo chiều ngang nếu không vừa với không gian có sẵn.

Khối

Một khối văn bản, biểu tượng hoặc văn bản và biểu tượng mà người dùng có thể nhấp vào.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "icon": {
    object (Icon)
  },
  "label": string,
  "onClick": {
    object (OnClick)
  },
  "enabled": boolean,
  "disabled": boolean,
  "altText": string
}
Trường
icon

object (Icon)

Hình ảnh biểu tượng. Nếu bạn đặt cả icon và label, thì biểu tượng sẽ xuất hiện trước nhãn.

label

string

Văn bản xuất hiện bên trong khối.

onClick

object (OnClick)

Không bắt buộc. Thao tác cần thực hiện khi người dùng nhấp vào khối, chẳng hạn như mở một siêu liên kết hoặc chạy một hàm tuỳ chỉnh.

enabled
(deprecated)

boolean

Không dùng nữa: Hãy sử dụng disabled.

Liệu khối có đang ở trạng thái hoạt động và phản hồi các hành động của người dùng hay không.

disabled

boolean

Liệu khối có ở trạng thái không hoạt động và bỏ qua hành động của người dùng hay không. Giá trị mặc định là false.

altText

string

Văn bản thay thế được dùng cho tính năng hỗ trợ tiếp cận.

Đặt văn bản mô tả cho người dùng biết chức năng của khối. Ví dụ: nếu một khối mở ra một siêu liên kết, hãy viết: "Mở một thẻ trình duyệt mới và chuyển đến tài liệu dành cho nhà phát triển Google Chat tại https://developers.google.com/workspace/chat".

CarouselCard

Một thẻ có thể hiển thị dưới dạng mục trong băng chuyền. Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "widgets": [
    {
      object (NestedWidget)
    }
  ],
  "footerWidgets": [
    {
      object (NestedWidget)
    }
  ]
}
Trường
widgets[]

object (NestedWidget)

Danh sách các tiện ích xuất hiện trong thẻ băng chuyền. Các tiện ích được hiển thị theo thứ tự mà chúng được chỉ định.

footerWidgets[]

object (NestedWidget)

Danh sách các tiện ích xuất hiện ở cuối thẻ băng chuyền. Các tiện ích được hiển thị theo thứ tự mà chúng được chỉ định.

NestedWidget

Danh sách các tiện ích có thể hiển thị trong một bố cục chứa, chẳng hạn như CarouselCard. Có thể dùng cho các ứng dụng Google Chat và không thể dùng cho các tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{

  "textParagraph": {
    object (TextParagraph)
  },
  "buttonList": {
    object (ButtonList)
  },
  "image": {
    object (Image)
  }
}
Trường
Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
textParagraph

object (TextParagraph)

Tiện ích đoạn văn bản.

buttonList

object (ButtonList)

Một tiện ích danh sách nút.

image

object (Image)

Một tiện ích hình ảnh.

Kết thúc các trường loại trừ lẫn nhau.

Chế độ hiển thị

Chỉ định xem một phần tử trên giao diện người dùng là hiển thị hay bị ẩn.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Enum
VISIBILITY_UNSPECIFIED Chế độ hiển thị chưa xác định. Không được dùng.
VISIBLE Phần tử trên giao diện người dùng hiển thị.
HIDDEN Phần tử trên giao diện người dùng bị ẩn.

EventAction

Đại diện cho một hành động có thể thực hiện trên một phần tử trên giao diện người dùng.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{
  "actionRuleId": string,
  "postEventTriggers": [
    {
      object (Trigger)
    }
  ],

  "commonWidgetAction": {
    object (CommonWidgetAction)
  }
}
Trường
actionRuleId

string

Giá trị nhận dạng riêng biệt của ActionRule.

postEventTriggers[]

object (Trigger)

Danh sách các điều kiện kích hoạt sẽ được kích hoạt sau khi EventAction được thực thi.

Thao tác cần thực hiện. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
commonWidgetAction

object (CommonWidgetAction)

Thao tác phổ biến với tiện ích.

Kết thúc các trường loại trừ lẫn nhau.

Trigger

Đại diện cho một điều kiện kích hoạt.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{
  "actionRuleId": string
}
Trường
actionRuleId

string

Giá trị nhận dạng riêng biệt của ActionRule.

CommonWidgetAction

Đại diện cho một hành động không dành riêng cho một tiện ích.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{

  "updateVisibilityAction": {
    object (UpdateVisibilityAction)
  }
}
Trường
Thao tác cần thực hiện. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
updateVisibilityAction

object (UpdateVisibilityAction)

Thao tác cập nhật chế độ hiển thị của một tiện ích.

Kết thúc các trường loại trừ lẫn nhau.

UpdateVisibilityAction

Đại diện cho một hành động cập nhật chế độ hiển thị của một tiện ích.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{
  "visibility": enum (Visibility)
}
Trường
visibility

enum (Visibility)

Chế độ hiển thị mới.

CollapseControl

Đại diện cho một chế độ kiểm soát mở rộng và thu gọn.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "horizontalAlignment": enum (HorizontalAlignment),
  "expandButton": {
    object (Button)
  },
  "collapseButton": {
    object (Button)
  }
}
Trường
horizontalAlignment

enum (HorizontalAlignment)

Căn chỉnh theo chiều ngang của nút mở rộng và thu gọn.

expandButton

object (Button)

Không bắt buộc. Xác định nút có thể tuỳ chỉnh để mở rộng phần này. Bạn phải đặt cả trường expandButton và collapseButton. Chỉ một nhóm trường sẽ không có hiệu lực. Nếu bạn không đặt trường này, hệ thống sẽ sử dụng nút mặc định.

collapseButton

object (Button)

Không bắt buộc. Xác định một nút có thể tuỳ chỉnh để thu gọn mục này. Bạn phải đặt cả trường expandButton và collapseButton. Chỉ một nhóm trường sẽ không có hiệu lực. Nếu bạn không đặt trường này, hệ thống sẽ sử dụng nút mặc định.

DividerStyle

Kiểu đường phân chia của thẻ. Hiện chỉ dùng cho đường phân chia giữa các phần của thẻ.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Enum
DIVIDER_STYLE_UNSPECIFIED Đừng sử dụng. Không xác định.
SOLID_DIVIDER Lựa chọn mặc định. Hiển thị một đường phân chia liền nét.
NO_DIVIDER Nếu bạn đặt giá trị này, thì đường phân chia sẽ không được hiển thị. Kiểu này sẽ xoá hoàn toàn đường phân chia khỏi bố cục. Kết quả tương đương với việc không thêm đường phân chia nào cả.

CardAction

Hành động trên thẻ là hành động liên quan đến thẻ. Ví dụ: thẻ hoá đơn có thể bao gồm các thao tác như xoá hoá đơn, gửi hoá đơn qua email hoặc mở hoá đơn trong trình duyệt.

Có trong các tiện ích bổ sung của Google Workspace và không có trong các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{
  "actionLabel": string,
  "onClick": {
    object (OnClick)
  }
}
Trường
actionLabel

string

Nhãn xuất hiện dưới dạng mục trong trình đơn thao tác.

onClick

object (OnClick)

Hành động onClick cho mục hành động này.

CardFixedFooter

Phần chân trang cố định (gắn chặt) xuất hiện ở cuối thẻ.

Việc đặt fixedFooter mà không chỉ định primaryButton hoặc secondaryButton sẽ gây ra lỗi.

Đối với ứng dụng Chat, bạn có thể sử dụng chân trang cố định trong hộp thoại, nhưng không thể sử dụng trong tin nhắn dạng thẻ. Để xem ví dụ về ứng dụng Google Chat, hãy xem bài viết Thêm chân trang cố định.

Dành cho các ứng dụng Google Chat và tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "primaryButton": {
    object (Button)
  },
  "secondaryButton": {
    object (Button)
  }
}
Trường
primaryButton

object (Button)

Nút chính của chân trang cố định. Nút này phải là nút văn bản có văn bản và màu sắc được đặt.

secondaryButton

object (Button)

Nút phụ của chân trang cố định. Nút này phải là nút văn bản có văn bản và màu sắc được đặt. Nếu đặt secondaryButton, bạn cũng phải đặt primaryButton.

DisplayStyle

Trong tiện ích bổ sung của Google Workspace, thuộc tính này xác định cách hiển thị thẻ.

Có trong các tiện ích bổ sung của Google Workspace và không có trong các ứng dụng Google Chat.

Enum
DISPLAY_STYLE_UNSPECIFIED Đừng sử dụng. Không xác định.
PEEK Tiêu đề của thẻ xuất hiện ở cuối thanh bên, che một phần thẻ trên cùng hiện tại của ngăn xếp. Khi nhấp vào tiêu đề, thẻ sẽ bật lên trong ngăn xếp thẻ. Nếu thẻ không có tiêu đề, thì tiêu đề được tạo sẽ được sử dụng.
REPLACE Giá trị mặc định. Thẻ này xuất hiện bằng cách thay thế chế độ xem của thẻ trên cùng trong ngăn xếp thẻ.

ExpressionData

Biểu thị dữ liệu được dùng để đánh giá một biểu thức.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{
  "id": string,
  "expression": string,
  "conditions": [
    {
      object (Condition)
    }
  ],
  "eventActions": [
    {
      object (EventAction)
    }
  ]
}
Trường
id

string

Giá trị nhận dạng riêng biệt của ExpressionData.

expression

string

Biểu thức chưa được biên dịch.

conditions[]

object (Condition)

Danh sách các điều kiện được xác định theo kết quả đánh giá biểu thức.

eventActions[]

object (EventAction)

Danh sách các hành động mà ExpressionData có thể sử dụng.

Điều kiện

Biểu thị một điều kiện có thể dùng để kích hoạt một hành động.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{
  "actionRuleId": string,

  "expressionDataCondition": {
    object (ExpressionDataCondition)
  }
}
Trường
actionRuleId

string

Giá trị nhận dạng riêng biệt của ActionRule.

Điều kiện. Sau đây là danh sách các trường loại trừ lẫn nhau. Tối đa một trong các trường sẽ được đặt trong phản hồi:
expressionDataCondition

object (ExpressionDataCondition)

Điều kiện được xác định bằng dữ liệu biểu thức.

Kết thúc các trường loại trừ lẫn nhau.

ExpressionDataCondition

Biểu thị một điều kiện được đánh giá bằng CEL.

Dành cho các tiện ích bổ sung của Google Workspace giúp mở rộng Google Workspace Studio. Không dùng được cho các ứng dụng Google Chat.

Biểu diễn dưới dạng JSON
{
  "conditionType": enum (ConditionType)
}
Trường
conditionType

enum (ConditionType)

Loại điều kiện.

ConditionType

Loại điều kiện.

Enum
CONDITION_TYPE_UNSPECIFIED Loại điều kiện không xác định.
EXPRESSION_EVALUATION_SUCCESS Đã đánh giá biểu thức thành công.
EXPRESSION_EVALUATION_FAILURE Không đánh giá được biểu thức.