Cards v2

Thẻ

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

Thẻ hỗ trợ một bố cục xác định, các phần tử tương tác trên giao diện người dùng như nút và nội dung đa phương tiện như hình ảnh. Sử dụng các 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:

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

Ví dụ về thẻ liên hệ

Để tạo tin nhắn mẫu cho thẻ trong Google Chat, hãy dùng tệp 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)
  }
}
Trường
header

object (CardHeader)

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

sections[]

object (Section)

Chứa một bộ sưu tập 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 trực quan bằng đường phân cách dòng. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Xác định một mục của thẻ.

sectionDividerStyle

enum (DividerStyle)

Kiểu phân cách giữa các phần.

cardActions[]

object (CardAction)

Hành động của thẻ. Các thao tác sẽ được thêm vào trình đơn trên thanh công cụ của thẻ.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

Ví dụ: tệp JSON sau đây tạo một trình đơn thao tác đối với thẻ có SettingsSend Feedback tùy chọn:

"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ẻ. Được dùng làm giá trị nhận dạng thẻ trong phần điều hướng thẻ.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

displayStyle

enum (DisplayStyle)

Trong Tiện ích bổ sung cho Google Workspace, hãy thiết lập các thuộc tính hiển thị của peekCardHeader.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

peekCardHeader

object (CardHeader)

Khi hiển thị nội dung theo ngữ cảnh, tiêu đề của thẻ xem trước hoạt động như một phần giữ chỗ để người dùng có thể di chuyển tiếp giữa các thẻ trang chủ và thẻ theo bối cảnh.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

CardHeader

Đại diện cho tiêu đề thẻ. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Thêm tiêu đề.

Dùng được 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 tiêu đề thẻ. Tiêu đề có chiều cao cố định: nếu cả tiêu đề và phụ đề được chỉ định 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, sẽ xuất hiện trên dòng riêng bên dưới dòng title.

imageType

enum (ImageType)

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

Dùng được 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 dùng cho việc hỗ trợ tiếp cận.

ImageType

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

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

Enum
SQUARE Giá trị mặc định. Áp dụng một mặt nạ hình vuông cho hình ảnh. Ví dụ: hình ảnh 4x3 trở thành hình 3x3.
CIRCLE Áp dụng mặt nạ hình tròn cho hình ảnh. Ví dụ: ảnh 4x3 trở thành hình tròn có đường kính 3.

Phần

Phần 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ùng được 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,
  "collapseControl": {
    object (CollapseControl)
  }
}
Trường
header

string

Văn bản xuất hiện ở đầu một mục. 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 Định dạng văn bản trong các ứng dụng Google ChatĐị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 phần này. Phải chứa ít nhất một tiện ích.

collapsible

boolean

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

Các phần 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 phần này để 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 các tiện ích một lần nữa 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 thu gọn một phần.

Ví dụ: khi một phần chứa 5 tiện ích và uncollapsibleWidgetsCount được đặt thành 2, hai tiện ích đầu tiên sẽ luôn hiển thị và ba tiện ích cuối cùng được thu gọn theo mặc định. Chiến lược phát hành đĩa đơn uncollapsibleWidgetsCount chỉ được tính khi collapsibletrue.

collapseControl

object (CollapseControl)

Không bắt buộc. Xác định nút mở rộng và thu gọn của phần. Nút này sẽ chỉ hiển thị nếu phần đó có thể thu gọn. Nếu bạn không đặt trường này, nút mặc định sẽ được sử dụng. Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

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 kết hợp có thể đại diện cho một trong các loại 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),

  // Union field data can be only one of the following:
  "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)
  },
  "chipList": {
    object (ChipList)
  }
  // End of list of possible types for union field data.
}
Trường
horizontalAlignment

enum (HorizontalAlignment)

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

Trường kết hợp data. Mỗi 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. data chỉ có thể là một trong các trạng thái sau:
textParagraph

object (TextParagraph)

Hiển thị đ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 Định dạng văn bản trong các ứng dụng Google ChatĐịnh dạng văn bản trong Tiện ích bổ sung của Google Workspace.

Ví dụ: JSON sau đây sẽ 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 một mục văn bản được trang trí.

Ví dụ: tệp JSON sau đây tạo một tiện ích văn bản được trang trí và hiển thị đị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. Đầu tiên là nút văn bản màu xanh dương còn 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,
        "alpha": 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ụ: tệp JSON sau đây tạo một mục nhập văn bản cho một địa chỉ email:

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

Một ví dụ khác: JSON sau đây tạo một mục nhập văn bản cho một ngôn ngữ lập trình với 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)

Cho thấy một tuỳ chọn kiểm soát 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 một 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ị tiện ích cho phép người dùng nhập ngày, giờ hoặc ngày và giờ.

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

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

object (Divider)

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

Ví dụ: JSON sau đây tạo một bộ 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 các mục số chia cho số cột. Một lưới gồm 10 mục và 2 cột sẽ có 5 hàng. Một lưới gồm 11 mục và 2 cột sẽ có 6 hàng.

Dùng được 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 gồm 2 cột chứa 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 tối đa 2 cột.

Để đưa vào nhiều hơn 2 cột hoặc để sử dụng hàng, hãy sử dụng Grid tiện ích.

Ví dụ: tệp 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"
          }
        }
      ]
    }
  ]
}
chipList

object (ChipList)

Danh sách khối.

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

"chipList": {
  "chips": [
    {
      "text": "Edit",
      "disabled": true,
    },
    {
      "icon": {
        "knownIcon": "INVITE",
        "altText": "check calendar"
      },
      "onClick": {
        "openLink": {
          "url": "https://example.com/calendar"
        }
      }
    }
  ]
}

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

TextParagraph

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

Dùng được 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
}
Trường
text

string

Văn bản hiển thị trong tiện ích.

maxLines

integer

Số dòng văn bản tối đa được hiển thị trong tiện ích. Nếu văn bản vượt quá số dòng tối đa đã chỉ định, thì nội dung vượt quá sẽ bị che khuất sau 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, hiện thêm không được hiển thị.

Giá trị mặc định là 0, trong trường hợp đó, tất cả ngữ cảnh đều hiển thị. Bỏ qua các giá trị âm. Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Bài đăng có hình ảnh

Hình ảnh do URL chỉ định và có thể có onClick hành động. Để biết ví dụ, hãy xem Thêm hình ảnh.

Dùng được 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 dùng cho việc hỗ trợ tiếp cận.

OnClick

Trình bày cách phản hồi khi người dùng nhấp vào một phần tử tương tác trên thẻ, chẳng hạn như một nút.

Dùng được 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
{

  // Union field data can be only one of the following:
  "action": {
    object (Action)
  },
  "openLink": {
    object (OpenLink)
  },
  "openDynamicLinkAction": {
    object (Action)
  },
  "card": {
    object (Card)
  },
  "overflowMenu": {
    object (OverflowMenu)
  }
  // End of list of possible types for union field data.
}
Trường

Trường kết hợp data.

data chỉ có thể là một trong các trạng thái sau:

action

object (Action)

Nếu được chỉ định, nút này sẽ kích hoạt một hành động onClick.

card

object (Card)

Một thẻ mới sẽ được đẩy vào ngăn xếp thẻ sau khi nhấp vào nếu được chỉ định.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

overflowMenu

object (OverflowMenu)

Nếu được chỉ định, onClick mở ra một trình đơn mục bổ sung. Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Hành động

Thao tác mô tả hành vi khi biểu mẫu được gửi. Ví dụ: bạn có thể gọi một tập lệnh Apps Script để xử lý biểu mẫu. Nếu hành động được kích hoạt, các giá trị trong biểu mẫu sẽ được gửi đến máy chủ.

Dùng được 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
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction),
  "requiredWidgets": [
    string
  ],
  "allWidgetsAreRequired": boolean
}
Trường
function

string

Một hàm tuỳ chỉnh để gọi khi phần tử chứa được nhấp vào hoặc được kích hoạt.

Để biết ví dụ về cách sử dụng, hãy xem Đọc dữ liệu biểu mẫu.

parameters[]

object (ActionParameter)

Danh sách thông số hành động.

loadIndicator

enum (LoadIndicator)

Chỉ định chỉ báo tải mà hành động hiển thị trong khi thực hiện lệnh gọi hành động.

persistValues

boolean

Cho biết liệu giá trị của biểu mẫu có còn sau thao tác này hay không. Giá trị mặc định là false.

Nếu true, các giá trị của biểu mẫu sẽ vẫn tồn tại sau khi bạn kích hoạt hành động. Để cho phép người dùng thực hiện thay đổi trong khi hành động đang được xử lý, hãy đặt LoadIndicator đến NONE. Để thông báo thẻ trong ứng dụng Chat, bạn cũng phải đặt ResponseType đến UPDATE_MESSAGE và sử dụng cùng một cardId từ thẻ chứa hành động đó.

Nếu false, các giá trị biểu mẫu sẽ bị xoá khi hành động được kích hoạt. Để ngăn người dùng thực hiện thay đổi trong khi hành động đang được xử lý, hãy đặt LoadIndicator đến SPINNER.

interaction

enum (Interaction)

Không bắt buộc. Bắt buộc khi mở hộp thoại.

Việc cần làm để phản hồi lại một lượt tương tác với người dùng, chẳng hạn như khi người dùng nhấp vào một nút trong thông báo thẻ.

Nếu chưa chỉ định, ứng dụng sẽ phản hồi bằng cách thực thi một action — chẳng hạn như mở đường liên kết hoặc chạy một hàm — như bình thường.

Bằng cách chỉ định một interaction, ứng dụng có thể phản hồi theo những cách tương tác đặc biệt. Ví dụ: bằng cách đặt interaction đến OPEN_DIALOG, ứng dụng này có thể mở một hộp thoại. Khi được chỉ định, chỉ báo tải sẽ không hiển thị. Nếu bạn chỉ định cho một tiện ích bổ sung, thì toàn bộ thẻ sẽ bị xoá và không có nội dung nào hiển thị trong ứng dụng.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

requiredWidgets[]

string

Không bắt buộc. Điền tên của các tiện ích cần thiết cho Hành động này để gửi một lượt gửi hợp lệ vào danh sách này.

Nếu các tiện ích được liệt kê ở đây không có giá trị khi Hành động này được gọi, thì quá trình gửi biểu mẫu sẽ bị huỷ.

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

allWidgetsAreRequired

boolean

Không bắt buộc. Nếu đúng, thì thao tác này sẽ coi tất cả tiện ích đều là bắt buộc.

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

ActionParameter

Danh sách các tham số chuỗi cần cung cấp khi phương thức hành động được gọi. Ví dụ: hãy xem xét 3 nút tạm ẩn: tạm hoãn ngay bây giờ, tạm hoãn một ngày hoặc tạm hoãn vào tuần tiếp theo. Bạn có thể dùng action method = snooze(), truyền loại tạm ẩn và thời gian tạm hoãn trong danh sách tham số chuỗi.

Để tìm hiểu thêm, hãy xem CommonEventObject.

Dùng được 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
{
  "key": string,
  "value": string
}
Trường
key

string

Tên của thông số cho tập lệnh hành động.

value

string

Giá trị của thông số.

LoadIndicator

Chỉ định chỉ báo tải mà hành động hiển thị trong khi thực hiện lệnh gọi hành động.

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

Enum
SPINNER Hiển thị vòng quay để cho biết nội dung đang tải.
NONE Không có nội dung nào hiển thị.

Tương tác

Không bắt buộc. Bắt buộc khi mở hộp thoại.

Việc cần làm để phản hồi lại một lượt tương tác với người dùng, chẳng hạn như khi người dùng nhấp vào một nút trong thông báo thẻ.

Nếu chưa chỉ định, ứng dụng sẽ phản hồi bằng cách thực thi một action — chẳng hạn như mở đường liên kết hoặc chạy một hàm — như bình thường.

Bằng cách chỉ định một interaction, ứng dụng có thể phản hồi theo những cách tương tác đặc biệt. Ví dụ: bằng cách đặt interaction đến OPEN_DIALOG, ứng dụng này có thể mở một hộp thoại.

Khi được chỉ định, chỉ báo tải sẽ không hiển thị. Nếu bạn chỉ định cho một tiện ích bổ sung, thì toàn bộ thẻ sẽ bị xoá và không có nội dung nào hiển thị trong ứng dụng.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Enum
INTERACTION_UNSPECIFIED Giá trị mặc định. Chiến lược phát hành đĩa đơn action thực thi như bình thường.
OPEN_DIALOG

Mở một dialog, một giao diện cửa sổ dựa trên thẻ mà các ứng dụng trong Chat dùng để tương tác với người dùng.

Chỉ được các ứng dụng trong Chat hỗ trợ khi người dùng nhấp vào các nút trong tin nhắn trên thẻ. Nếu bạn chỉ định cho một tiện ích bổ sung, thì toàn bộ thẻ sẽ bị xoá và không có nội dung nào hiển thị trong ứng dụng.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

OpenAs

Khi một OnClick sẽ mở ra một liên kết, thì ứng dụng có thể mở dưới dạng cửa sổ kích thước đầy đủ (nếu đó là khung được ứng dụng sử dụng) hoặc lớp phủ (chẳng hạn như cửa sổ bật lên). Việc triển khai phụ thuộc vào khả năng của nền tảng ứng dụng và giá trị đã chọn có thể bị bỏ qua nếu ứng dụng không hỗ trợ giá trị đó. FULL_SIZE được tất cả khách hàng hỗ trợ.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

Enum
FULL_SIZE Đường liên kết sẽ mở ra dưới dạng cửa sổ có kích thước đầy đủ (nếu đó là khung mà ứng dụng sử dụng).
OVERLAY Đường liên kết sẽ mở ra dưới dạng lớp phủ, chẳng hạn như cửa sổ bật lên.

OnClose

Thao tác của ứng dụng khi một đường liên kết được mở bằng một OnClick đã đóng.

Việc triển khai phụ thuộc vào khả năng của nền tảng ứng dụng. Ví dụ: trình duyệt web có thể mở một liên kết trong cửa sổ bật lên có OnClose trình xử lý.

Nếu cả hai OnOpenOnClose trình xử lý nào đã được thiết lập và nền tảng ứng dụng không thể hỗ trợ cả hai giá trị, OnClose sẽ được ưu tiên.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

Enum
NOTHING Giá trị mặc định. Thẻ không tải lại được; không có gì xảy ra cả.
RELOAD

Tải lại thẻ sau khi cửa sổ con đóng.

Nếu dùng cùng với OpenAs.OVERLAY, cửa sổ con đóng vai trò là hộp thoại phương thức và thẻ mẹ sẽ bị chặn cho đến khi cửa sổ con đóng lại.

OverflowMenu

Tiện ích trình đơn bật lên có một hoặc nhiều thao tác mà người dùng có thể gọi. Ví dụ: hiển thị các hành động phụ trong một thẻ. Bạn có thể dùng tiện ích này khi các thao tác không phù hợp với không gian hiện có. Để sử dụng, hãy chỉ định tiện ích này trong OnClick hành động của các tiện ích hỗ trợ thao tác đó. Ví dụ: trong một Button.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

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

object (OverflowMenuItem)

Bắt buộc. Danh sách các lựa chọn trên trình đơn.

OverflowMenuItem

Một tuỳ chọn mà người dùng có thể gọi trong một trình đơn mục bổ sung.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

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

object (Icon)

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

text

string

Bắt buộc. Văn bản giúp xác định hoặc mô tả mặt hàng cho người dùng.

onClick

object (OnClick)

Bắt buộc. Hành động được gọi khi một lựa chọn trong trình đơn được chọn. Chiến dịch này OnClick không được chứa một OverflowMenu, bất kỳ giá trị nào được chỉ định OverflowMenu bị thả và mục trong trình đơn bị tắt.

disabled

boolean

Liệu tuỳ chọn trình đơn có bị tắt hay không. Giá trị mặc định là false.

Biểu tượng

Biểu tượng xuất hiện trong tiện ích trên thẻ. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Thêm biểu tượng.

Hỗ trợ tích hợp sẵntuỳ chỉnh .

Dùng được 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
{
  "altText": string,
  "imageType": enum (ImageType),

  // Union field icons can be only one of the following:
  "knownIcon": string,
  "iconUrl": string,
  "materialIcon": {
    object (MaterialIcon)
  }
  // End of list of possible types for union field icons.
}
Trường
altText

string

Không bắt buộc. Nội dung mô tả biểu tượng dùng để hỗ trợ tiếp cận. Nếu bạn không chỉ định, giá trị mặc định Button sẽ được cung cấp. Tốt nhất là bạn nên đặt một nội dung mô tả hữu ích cho nội dung mà biểu tượng hiển thị và chức năng của biểu tượng (nếu có). Ví dụ: A user's account portrait hoặc Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/workspace/chat.

Nếu biểu tượng được đặt trong Button, altText xuất hiện dưới dạng văn bản trợ giúp khi người dùng di chuột qua nút. Tuy nhiên, nếu nút này cũng đặt text, biểu tượng altText sẽ bị bỏ qua.

imageType

enum (ImageType)

Kiểu cắt được áp dụng cho hình ảnh. Trong một số trường hợp, việc áp dụng CIRCLE cắt khiến hình ảnh bị vẽ lớn hơn biểu tượng tích hợp sẵn.

Trường kết hợp icons. Biểu tượng xuất hiện trong tiện ích trên thẻ. icons chỉ có thể là một trong các trạng thái sau:
knownIcon

string

Hiển thị một trong các biểu tượng tích hợp sẵn do Google Workspace cung cấp.

Ví dụ: để hiển thị biểu tượng máy bay, hãy chỉ định AIRPLANE. Đối với xe buýt, hãy nêu rõ BUS.

Để xem danh sách đầy đủ các biểu tượng được hỗ trợ, hãy xem biểu tượng tích hợp sẵn.

iconUrl

string

Hiển thị biểu tượng tuỳ chỉnh được lưu trữ trong URL loại HTTPS.

Ví dụ:

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

Các loại tệp được hỗ trợ bao gồm .png.jpg.

materialIcon

object (MaterialIcon)

Hiển thị một trong Biểu tượng Google Material.

Ví dụ: để hiển thị biểu tượng hộp kiểm, sử dụng

"materialIcon": {
  "name": "check_box"
}

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

MaterialIcon

Đáp Biểu tượng Google Material, bao gồm hơn 2500 lựa chọn.

Ví dụ: để hiển thị biểu tượng hộp đánh dấu với trọng số và điểm tuỳ chỉnh, hãy viết những nội dung sau:

{
  "name": "check_box",
  "fill": true,
  "weight": 300,
  "grade": -25
}

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "fill": boolean,
  "weight": integer,
  "grade": integer
}
Trường
name

string

Tên biểu tượng được xác định trong Biểu tượng Google Material, ví dụ: check_box. Mọi tên không hợp lệ đều bị bỏ qua và thay thế bằng chuỗi trống, khiến biểu tượng không hiển thị.

fill

boolean

Liệu biểu tượng có hiển thị là đã tô màu nền hay không. Giá trị mặc định là sai.

Để xem trước các chế độ cài đặt biểu tượng khác nhau, hãy chuyển đến Biểu tượng phông chữ của Google và điều chỉnh cài đặt trong Tuỳ chỉnh.

weight

integer

Độ đậm nét của biểu tượng. Chọn từ {100, 200, 300, 400, 500, 600, 700}. Nếu không có, giá trị mặc định sẽ là 400. Nếu có bất kỳ giá trị nào khác được chỉ định, thì giá trị mặc định sẽ được sử dụng.

Để xem trước các chế độ cài đặt biểu tượng khác nhau, hãy chuyển đến Biểu tượng phông chữ của Google và điều chỉnh cài đặt trong Tuỳ chỉnh.

grade

integer

Trọng số và cấp độ ảnh hưởng đến độ dày của biểu tượng. Việc điều chỉnh để chấm điểm chi tiết hơn việc điều chỉnh trọng số và có tác động nhỏ đến kích thước của biểu tượng. Chọn từ {-25, 0, 200}. Nếu không có, giá trị mặc định là 0. Nếu có bất kỳ giá trị nào khác được chỉ định, thì giá trị mặc định sẽ được sử dụng.

Để xem trước các chế độ cài đặt biểu tượng khác nhau, hãy chuyển đến Biểu tượng phông chữ của Google và điều chỉnh cài đặt trong Tuỳ chỉnh.

DecoratedText

Tiện ích hiển thị văn bản với thành phần trang trí tuỳ chọn như nhãn bên trên hoặc bên 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. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Hiển thị văn bản có văn bản trang trí.

Dùng được 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)
  },
  "topLabel": string,
  "text": string,
  "wrapText": boolean,
  "bottomLabel": string,
  "onClick": {
    object (OnClick)
  },

  // Union field control can be only one of the following:
  "button": {
    object (Button)
  },
  "switchControl": {
    object (SwitchControl)
  },
  "endIcon": {
    object (Icon)
  }
  // End of list of possible types for union field control.
}
Trường
icon
(deprecated)

object (Icon)

Không dùng nữa, thay vào đó startIcon.

startIcon

object (Icon)

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

topLabel

string

Văn bản xuất hiện ở trên text. Luôn cắt ngắn.

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 Định dạng văn bản trong các ứng dụng Google ChatĐịnh dạng văn bản trong 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 được gói 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 topLabelbottomLabel.

bottomLabel

string

Văn bản xuất hiện bên dưới text. Luôn kết thúc.

onClick

object (OnClick)

Hành động này được kích hoạt khi người dùng nhấp vào topLabel hoặc bottomLabel.

Trường kết hợp control. Một nút, công tắc, hộp đánh dấu hoặc hình ảnh xuất hiện ở bên phải văn bản trong decoratedText tiện ích. control chỉ có thể là một trong các trạng thái sau:
button

object (Button)

Một 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)

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

Hỗ trợ tích hợp sẵntuỳ chỉnh .

Nút

Người dùng có thể nhấp vào một nút văn bản, biểu tượng hoặc văn bản và biểu tượng. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Thêm nút.

Để đặt hình ảnh thành một nút có thể nhấp, hãy chỉ định Image (không phải là ImageComponent) và đặt một onClick hành động.

Dùng được 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,
  "icon": {
    object (Icon)
  },
  "color": {
    object (Color)
  },
  "onClick": {
    object (OnClick)
  },
  "disabled": boolean,
  "altText": string,
  "type": enum (Type)
}
Trường
text

string

Văn bản xuất hiện bên trong nút.

icon

object (Icon)

Hình ảnh biểu tượng. Nếu cả hai icontext được đặt thì biểu tượng sẽ xuất hiện trước văn bản.

color

object (Color)

Nếu được đặt, nút này sẽ được tô bằng một màu nền đồng nhất và màu phông chữ sẽ thay đổi để duy trì độ tương phản với màu nền. Ví dụ: việc đặt nền màu xanh dương có thể dẫn đến văn bản màu trắng.

Nếu bạn không đặt chính sách này, thì nền hình ảnh sẽ có màu trắng và phông chữ màu xanh dương.

Đối với màu đỏ, xanh lục và xanh dương, giá trị của mỗi trường là một float bạn có thể biểu thị bằng một trong hai cách: dưới dạng số từ 0 đến 255 chia cho 255 (153/255) hoặc dưới dạng giá trị từ 0 đến 1 (0,6). 0 đại diện cho không có màu và 1 hoặc 255/255 thể hiện sự hiện diện đầy đủ của màu đó trên thang màu RGB.

Đặt (không bắt buộc) alpha để thiết lập mức độ trong suốt bằng phương trình này:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

Để alpha, giá trị của 1 tương ứng với một màu đồng nhất và giá trị là 0 tương ứng với một màu hoàn toàn trong suốt.

Ví dụ: màu sau đây thể hiện một nửa màu đỏ trong suốt:

"color": {
   "red": 1,
   "green": 0,
   "blue": 0,
   "alpha": 0.5
}
onClick

object (OnClick)

Bắt buộc. Hành động sẽ thực hiện khi người dùng nhấp vào nút, chẳng hạn như mở siêu liên kết hoặc chạy hàm tuỳ chỉnh.

disabled

boolean

Nếu true, nút này hiển thị ở trạng thái không hoạt động và không phản hồi với hành động của người dùng.

altText

string

Văn bản thay thế được dùng cho khả năng tiếp cận.

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

type

enum (Type)

Xác định loại nút.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Màu

Đại diện cho một màu trong hệ màu RGBA. Cách trình bày này được thiết kế để đơn giản hoá việc chuyển đổi sang và từ các bản trình bày màu sắc bằng nhiều ngôn ngữ khác nhau sao cho gọn nhẹ. Ví dụ: các trường của biểu diễn này có thể được cung cấp một cách đơn giản cho hàm khởi tạo của java.awt.Color trong Java; nó cũng có thể được cung cấp đơn giản cho UIColor +colorWithRed:green:blue:alpha trong iOS; và chỉ cần thực hiện một chút thao tác, nó có thể dễ dàng được định dạng thành CSS rgba() trong JavaScript.

Trang tham khảo này không có thông tin về hệ màu tuyệt đối cần dùng để diễn giải giá trị RGB – ví dụ: sRGB, Adobe RGB, DCI-P3 và BT.2020. Theo mặc định, các ứng dụng sẽ giả định hệ màu sRGB.

Khi cần phải quyết định bằng màu sắc, việc triển khai, trừ phi được ghi lại khác, sẽ coi hai màu là bằng nhau nếu tất cả các giá trị màu đỏ, xanh lục, xanh lam và alpha của chúng khác nhau tối đa 1e-5.

Ví dụ (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();
 }
 // ...

Ví dụ (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;
}
// ...

Ví dụ (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('');
};

// ...
Biểu diễn dưới dạng JSON
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
Trường
red

number

Lượng màu đỏ trong màu dưới dạng một giá trị trong khoảng [0, 1].

green

number

Lượng màu xanh lục trong màu dưới dạng một giá trị trong khoảng [0, 1].

blue

number

Lượng màu xanh dương trong màu dưới dạng một giá trị trong khoảng [0, 1].

alpha

number

Tỷ lệ của màu này sẽ được áp dụng cho điểm ảnh. Tức là màu pixel cuối cùng được xác định theo phương trình:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

Tức là giá trị 1.0 tương ứng với một màu đồng nhất, trong khi giá trị 0.0 tương ứng với một màu hoàn toàn trong suốt. Tính năng này sử dụng một thông báo trình bao bọc thay vì một đại lượng vô hướng số thực đơn giản để có thể phân biệt giữa giá trị mặc định và giá trị chưa được đặt. Nếu bạn bỏ qua, đối tượng màu này sẽ hiển thị dưới dạng một màu đồng nhất (như thể giá trị alpha đã được cung cấp rõ ràng giá trị là 1.0).

Loại

Chiến lược phát hành đĩa đơn loại của một nút.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Enum
TYPE_UNSPECIFIED Không sử dụng. Không xác định.
OUTLINED Nút có đường viền là các nút có mức độ nhấn mạnh trung bình. Các mục này thường chứa các thao tác quan trọng nhưng không phải là hành động chính trong ứng dụng Chat hoặc tiện ích bổ sung.
FILLED Nút được tô màu nền có vùng chứa có màu đồng nhất. Đây là mẫu quảng cáo có tác động trực quan nhất và nên dùng cho hành động quan trọng và chính trong ứng dụng Chat hoặc tiện ích bổ sung.
FILLED_TONAL Nút tô màu nền là trung tâm thay thế giữa các nút tô màu nền và có đường viền. Nút này sẽ hữu ích trong những bối cảnh mà nút có mức độ ưu tiên thấp hơn yêu cầu nhấn mạnh hơn một chút so với nút có bố cục.
BORDERLESS Nút không có vùng chứa ẩn ở trạng thái mặc định. Chế độ này thường được dùng cho các hành động có mức độ ưu tiên thấp nhất, đặc biệt là khi trình bày nhiều lựa chọn.

SwitchControl

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

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

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

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 một sự kiện nhập biểu mẫu.

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

value

string

Giá trị do người dùng nhập, được trả về như 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ý thông tin đầu vào trong biểu mẫu, hãy xem Nhận dữ liệu biểu mẫu.

selected

boolean

Thời gian true, nút chuyển đã được chọn.

onChangeAction

object (Action)

Hành động sẽ thực hiện khi trạng thái chuyển đổi thay đổi, chẳng hạn như hàm nào sẽ chạy.

controlType

enum (ControlType)

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

Dùng được 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ùng được 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 kiểu bật/tắt.
CHECKBOX Không dùng nữa, thay vào đó CHECK_BOX.
CHECK_BOX Một hộp đánh dấu.

ButtonList

Danh sách các nút được bố trí theo chiều ngang. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Thêm nút.

Dùng được 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
{
  "buttons": [
    {
      object (Button)
    }
  ]
}
Trường
buttons[]

object (Button)

Một loạt các nút.

TextInput

Một 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. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Thêm một trường mà người dùng có thể nhập văn bản vào đó.

Các ứng dụng trong Chat 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ý thông tin đầu vào trong biểu mẫu, hãy xem Nhận dữ liệu biểu mẫu.

Khi bạn cần thu thập dữ liệu không xác định hoặc trừu tượng 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 SelectionInput tiện ích.

Dùng được 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
}
Trường
name

string

Tên mà mục nhập văn bản đượ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ý thông tin đầu vào trong biểu mẫu, hãy xem 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ụ thể lại cần họ của họ, hãy viết surname thay vì name.

Bắt buộc nếu hintText chưa được chỉ định. Nếu không thì không bắt buộc.

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 label chưa được chỉ định. Nếu không thì không bắt buộc.

value

string

Giá trị do người dùng nhập, được trả về như 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ý thông tin đầu vào trong biểu mẫu, hãy xem Nhận dữ liệu biểu mẫu.

type

enum (Type)

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

onChangeAction

object (Action)

Việc cần làm khi trường nhập dữ liệu thay đổi. 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 hàm tuỳ chỉnh hoặc mở hộp thoại trong Google Chat.

initialSuggestions

object (Suggestions)

Những giá trị được đề 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 văn bản. Khi người dùng nhập, các giá trị được đề xuất sẽ lọc một cách linh động để khớp với nội dung mà người dùng đã nhập.

Ví dụ: trường nhập dữ liệu văn bản 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 các bộ lọc đề xuất để chỉ hiển thị JavaJavaScript.

Các giá trị được đề 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à khác java script. Đề 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 luôn SINGLE_LINE, ngay cả khi được đặt thành MULTIPLE_LINE.

Dùng được 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 văn bản cung cấp đề xuất cho người dùng tương tác với trường đó.

Nếu chưa chỉ định, các đề xuất được đặt bởi initialSuggestions và được ứng dụng xử lý.

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

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

validation

object (Validation)

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

Dùng được 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.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Loại

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

Dùng được 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 có chiều cao cố định gồm nhiều dòng.

RenderActions

Một tập hợp hướng dẫn kết xuất để yêu cầu thẻ thực hiện một thao tác, hoặc yêu cầu ứng dụng lưu trữ tiện ích bổ sung hoặc ứng dụng Chat 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 trong Google Chat và tiện ích bổ sung của Google Workspace.

Trường
action

Action

Hành động

Trường
navigations[]

Navigation

Đẩy hoặc cập nhật thẻ được hiển thị.

Thêm thẻ mới vào nhóm ảnh (di chuyển về phía trước). Đối với các ứng dụng nhắn tin, tính năng này chỉ dùng được trên trang chủ ứng dụng.

Dành cho các ứng dụng trong 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 các ứng dụng nhắn tin, tính năng này chỉ dùng được trên trang chủ ứng dụng.

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

navigations: {
  updateCard: CARD
}

Nội dung đề xuất

Những giá trị được đề 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 văn bản. Khi người dùng nhập, các giá trị được đề xuất sẽ lọc một cách linh động để khớp với nội dung mà người dùng đã nhập.

Ví dụ: trường nhập dữ liệu văn bản 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 các bộ lọc đề xuất sẽ hiển thị JavaJavaScript.

Các giá trị được đề 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à khác java script. Đề 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 luôn SINGLE_LINE, ngay cả khi được đặt thành MULTIPLE_LINE.

Dùng được 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 được dùng cho các đề xuất tự động hoàn thành trong các trường nhập dữ liệu văn bản.

SuggestionItem

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

Dùng được 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
{

  // Union field content can be only one of the following:
  "text": string
  // End of list of possible types for union field content.
}
Trường

Trường kết hợp content.

content chỉ có thể là một trong các trạng thái sau:

text

string

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

Xác thực

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

Dùng được 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. Lưu ý rằng thuộc tính này chỉ dùng để nhập văn bản và bị bỏ qua đối với các tiện ích khác.

Dùng được 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ùng được 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.

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 Một 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.

SelectionInput

Tiện ích tạo ra 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. 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ể được dự đoán hoặc liệt kê. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Thêm các thành phần có thể chọn trên giao diện người dùng.

Ứng dụng nhắn tin 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ý thông tin đầu vào trong biểu mẫu, hãy xem Nhận dữ liệu biểu mẫu.

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

Dùng được 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)
  },
  "multiSelectMaxSelectedItems": integer,
  "multiSelectMinQueryLength": integer,
  "validation": {
    object (Validation)
  },

  // Union field multi_select_data_source can be only one of the following:
  "externalDataSource": {
    object (Action)
  },
  "platformDataSource": {
    object (PlatformDataSource)
  }
  // End of list of possible types for union field multi_select_data_source.
}
Trường
name

string

Bắt buộc. Tên xác định mục nhập lựa chọn trong sự kiện nhập biểu mẫu.

Để biết thông tin chi tiết về cách xử lý thông tin đầu vào trong biểu mẫu, hãy xem 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 phiếu yêu cầu hỗ trợ trong trình đơn thả xuống, thì nhãn có thể là "Khẩn cấp" hoặc "Chọn sự khẩn cấp".

type

enum (SelectionType)

Loại mục mà người dùng nhìn thấy trong một SelectionInput tiện ích. Các loại lựa chọn hỗ trợ nhiều loại 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 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 loạt các nút chọn hoặc hộp đánh dấu. Hỗ trợ lên đến 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 được 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ý thông tin đầu vào trong biểu mẫu, hãy xem Nhận dữ liệu biểu mẫu.

multiSelectMaxSelectedItems

integer

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

multiSelectMinQueryLength

integer

Đối với trình đơn chọn nhiều đối tượng, số lượng ký tự văn bản mà người dùng nhập trước khi ứng dụng truy vấn sẽ tự động hoàn thành và hiện các mục đề xuất trong trình đơn.

Nếu bạn không chỉ định, thì mặc định sẽ là 0 ký tự đối với nguồn dữ liệu tĩnh và 3 ký tự đối với nguồn dữ liệu bên ngoài.

validation

object (Validation)

Đối với trình đơn thả xuống, hãy xác thực trường nhập dữ liệu của lựa chọn này.

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

Trường kết hợp multi_select_data_source. Đối với trình đơn chọn nhiều mục, nguồn dữ liệu sẽ điền sẵn các mục lựa chọn.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace. multi_select_data_source chỉ có thể là một trong các trạng thái sau:

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 trên Google Workspace.

SelectionType

Định dạng của các mục mà người dùng có thể chọn. Các tuỳ chọn khác nhau sẽ 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 đầu vào lựa chọn hỗ trợ một kiểu lựa chọn. Ví dụ: không hỗ trợ kết hợp hộp đánh dấu và nút chuyển.

Dùng được 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 tập hợp các 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 Một trình đơn thả xuống. Người dùng có thể chọn một mục trong trình đơn.
MULTI_SELECT

Trình đơn chọn nhiều đối tượng cho dữ liệu tĩnh hoặc động. Trên thanh trình đơn, người dùng có thể chọn một hoặc nhiều mục. Người dùng cũng có thể nhập các giá trị để điền dữ liệu động. Ví dụ: người dùng có thể bắt đầu nhập tên của một phòng Google Chat và tiện ích này sẽ tự động đề xuất không gian đó.

Để điền các mục cho một trình đơn chọn nhiều mục, bạn có thể sử dụng một trong các loại nguồn dữ liệu sau:

  • Dữ liệu tĩnh: Các mục được chỉ định là SelectionItem các đối tượng trong tiện ích. Tối đa 100 mục.
  • 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 phòng Google Chat.
  • Dữ liệu bên ngoài: Các mục được điền từ một nguồn dữ liệu bên ngoài không thuộc Google Workspace.

Để biết ví dụ về cách triển khai trình đơn chọn nhiều mục, hãy xem Thêm trình đơn chọn nhiều mục.

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

SelectionItem

Một mục mà người dùng có thể chọn trong một mục nhập lựa chọn, chẳng hạn như hộp đánh dấu hoặc nút chuyển.

Dùng được 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,
  "value": string,
  "selected": boolean,
  "startIconUri": string,
  "bottomText": string
}
Trường
text

string

Văn bản giúp xác định hoặc mô tả mặt hàng cho người dùng.

value

string

Giá trị liên kết với mục này. Khách hàng nên sử dụng giá trị này làm giá trị nhập vào biểu mẫu.

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

selected

boolean

Liệu mục đó có được chọn theo mặc định hay không. Nếu mục nhập lựa chọn chỉ chấp nhận một giá trị (chẳng hạn như đối với nút chọn hoặc trình đơn thả xuống), bạn chỉ nên đặt trường này cho một mục.

startIconUri

string

Đối với trình đơn chọn nhiều mục, URL của biểu tượng xuất hiện bên cạnh màn hình của mục text . Hỗ trợ tệp PNG và JPEG. Phải là HTTPS URL. Ví dụ: https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png.

bottomText

string

Đối với trình đơn chọn nhiều mục, nội dung mô tả bằng văn bản hoặc nhãn xuất hiện bên dưới phần mở rộng của mục text .

PlatformDataSource

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

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

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

  // Union field data_source can be only one of the following:
  "commonDataSource": enum (CommonDataSource),
  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
  // End of list of possible types for union field data_source.
}
Trường
Trường kết hợp data_source. Nguồn dữ liệu. data_source chỉ có thể là một trong các trạng thái sau:
commonDataSource

enum (CommonDataSource)

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

hostAppDataSource

object (HostAppDataSourceMarkup)

Một nguồn dữ liệu chỉ có ở ứng dụng lưu trữ của Google Workspace, chẳng hạn như các không gian trong Google Chat.

CommonDataSource

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

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

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

HostAppDataSourceMarkup

Đối với SelectionInput sử dụng trình đơn chọn nhiều lựa chọn, một nguồn dữ liệu từ ứng dụng Google Workspace. Nguồn dữ liệu sẽ điền các mục lựa chọn cho trình đơn chọn nhiều mục.

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

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

  // Union field data_source can be only one of the following:
  "chatDataSource": {
    object (ChatClientDataSourceMarkup)
  }
  // End of list of possible types for union field data_source.
}
Trường
Trường kết hợp data_source. Ứng dụng Google Workspace điền các mục vào trình đơn chọn nhiều mục. data_source chỉ có thể là một trong các trạng thái sau:
chatDataSource

object (ChatClientDataSourceMarkup)

Một nguồn dữ liệu của Google Chat.

ChatClientDataSourceMarkup

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

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

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

  // Union field source can be only one of the following:
  "spaceDataSource": {
    object (SpaceDataSource)
  }
  // End of list of possible types for union field source.
}
Trường
Trường kết hợp source. Nguồn dữ liệu trong Google Chat. source chỉ có thể là một trong các trạng thái sau:
spaceDataSource

object (SpaceDataSource)

Các phòng Google Chat mà người dùng là thành viên.

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 không gian mà người dùng là thành viên.

Dùng được trên các ứng dụng Google Chat và không dùng được với 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 đặt thành true, theo mặc định, trình đơn chọn nhiều mục sẽ chọn phòng Google Chat hiện tại làm mục.

DateTimePicker

Cho phép người dùng nhập ngày, giờ hoặc cả ngày và giờ. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem 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ùng được 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)
  },
  "validation": {
    object (Validation)
  }
}
Trường
name

string

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

Để biết thông tin chi tiết về cách xử lý thông tin đầu vào trong biểu mẫu, hãy xem 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 đặt lịch hẹn, hãy sử dụng một nhãn như Appointment date hoặc Appointment date and time.

type

enum (DateTimePickerType)

Tiện ích này 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 được hiển thị trong tiện ích, tính bằng mili giây kể từ Thời gian bắt đầu của hệ thống Unix.

Chỉ định giá trị dựa trên loại công cụ chọn ( DateTimePickerType):

  • DATE_AND_TIME : ngày và giờ theo lịch theo giờ UTC. Ví dụ:Để thể hiện lúc 12 giờ đêm ngày 1 tháng 1 năm 2023 (theo giờ UTC), hãy sử dụng 1672574400000.
  • DATE_ONLY : một ngày dương lịch vào lúc 00:00:00 giờ UTC. Ví dụ: để thể hiện 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 giờ đêm, hãy sử dụng 43200000 (hoặc 12 * 60 * 60 * 1000).
timezoneOffsetDate

integer

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

onChangeAction

object (Action)

Được kích hoạt khi người dùng nhấp Lưu hoặc Xoá từ DateTimePicker .

validation

object (Validation)

Không bắt buộc. Chỉ định xác thực bắt buộc cho bộ chọn bộ chọn ngày giờ này.

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

DateTimePickerType

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

Dùng được 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 một 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 đường phân chia giữa các tiện ích dưới dạng đường ngang. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Thêm một đường phân chia theo chiều ngang giữa các tiện ích.

Dùng được 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 bộ chia:

"divider": {}

Lưới

Hiển thị lưới có một tập hợp các mục. Mục chỉ có thể bao gồm văn bản hoặc hình ảnh. Đối với cột thích ứng, hoặc để bao gồm nhiều hơn văn bản hay hình ảnh, hãy sử dụng Columns. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem 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ố lượng hàng được xác định theo số mục chia cho cột. Một lưới gồm 10 mục và 2 cột sẽ có 5 hàng. Một lưới gồm 11 mục và 2 cột sẽ có 6 hàng.

Dùng được 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 gồm 2 cột chứa 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 để 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ố lượng cột cần hiển thị trong lưới. Giá trị mặc định sẽ được sử dụng nếu trường này không được chỉ định 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 đồng hành).

onClick

object (OnClick)

Lệnh gọi lại này được từng mục riêng lẻ trong lưới sử dụng lại, nhưng với giá trị nhận dạng và chỉ mục của mục trong danh sách mặt hàng được thêm vào tham số của lệnh gọi lại.

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ùng được 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 trong lưới này. Giá trị nhận dạng này được trả về trong onClick tham số lệnh gọi lại.

image

object (ImageComponent)

Hình ảnh xuất hiện trong mục lưới.

title

string

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

subtitle

string

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

layout

enum (GridItemLayout)

Bố cục cần sử dụng cho mục trong lưới.

ImageComponent

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

Dùng được 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 sẽ áp dụng cho hình ảnh.

borderStyle

object (BorderStyle)

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

ImageCropStyle

Đại diện cho kiểu cắt được áp dụng cho một hình ảnh.

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

Ví dụ: dưới đâ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)

Kiểu cắt.

aspectRatio

number

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

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

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

ImageCropType

Đại diện cho kiểu cắt được áp dụng cho một hình ảnh.

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

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

BorderStyle

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

Dùng được 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 sử dụng khi loại BORDER_TYPE_STROKE.

cornerRadius

integer

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

BorderType

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

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

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

GridItemLayout

Biểu thị các tuỳ chọn bố cục có sẵn cho một mục trong lưới.

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

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

Cột

Chiến lược phát hành đĩa đơn Columns tiện ích 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. Để biết ví dụ trong các ứng dụng Google Chat, hãy xem Hiển thị thẻ và hộp thoại trong cột.

Chiều cao của mỗi cột do cột cao hơn xác định. 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 một 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 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 cách sử dụng HorizontalSizeStyle . Nếu chiều rộng màn hình của người dùng quá hẹp, cột thứ hai sẽ gói bên dưới cột đầu tiên:

  • Trên web, cột thứ hai sẽ gói 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ẽ gói 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ẽ gói nếu chiều rộng màn hình nhỏ hơn hoặc bằng 320 dp.

Để đưa vào nhiều hơn 2 cột hoặc để sử dụng hàng, hãy sử dụng Grid tiện ích.

Dùng được 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
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
Trường
columnItems[]

object (Column)

Một mảng cột. Bạn có thể đưa tối đa 2 cột vào một thẻ hoặc hộp thoại.

Cột

Một cột.

Tiện ích bổ sung và ứng dụng trong 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ăn chỉnh sang trái, phải hay giữa cột.

verticalAlignment

enum (VerticalAlignment)

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

widgets[]

object (Widgets)

Một mảng tiện ích có trong một cột. Các 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ả thông số HorizontalSizeStyle và chiều rộng của các tiện ích bên trong cột.

Tiện ích bổ sung và ứng dụng trong Chat

Enum
HORIZONTAL_SIZE_STYLE_UNSPECIFIED Khô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 được đặt thành FILL_AVAILABLE_SPACE, mỗi cột sẽ lấp đầy 50% không gian.
FILL_MINIMUM_SPACE Cột lấp đầy lượng không gian ít nhất có thể và không vượt quá 30% chiều rộng của thẻ.

HorizontalAlignment

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

Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

Enum
HORIZONTAL_ALIGNMENT_UNSPECIFIED Không sử dụng. Không xác định.
START Giá trị mặc định. Căn chỉnh các tiện ích tới vị trí bắt đầu của cột. Đối với bố cục từ trái sang phải, căn chỉnh sang trái. Đối với bố cục từ phải sang trái, hãy căn chỉnh sang 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 tới 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 tiện ích sang phải. Đối với bố cục từ phải sang trái, hãy căn chỉnh tiện ích sang trái.

VerticalAlignment

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

Tiện ích bổ sung và ứng dụng trong Chat

Enum
VERTICAL_ALIGNMENT_UNSPECIFIED Khô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 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 trong một cột.

Tiện ích bổ sung và ứng dụng trong Chat

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

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "chipList": {
    object (ChipList)
  }
  // End of list of possible types for union field data.
}
Trường

Trường kết hợp data.

data chỉ có thể là một trong các trạng thái sau:

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. Dùng được trên các ứng dụng Google Chat và không dùng được với các tiện ích bổ sung của Google Workspace.

ChipList

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

Dùng được trên các ứng dụng Google Chat và không dùng được với các 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 danh sách khối được chỉ định.

chips[]

object (Chip)

Một mảng chip.

Bố cục

Bố cục của danh sách khối.

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

Khối

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

Dùng được trên các ứng dụng Google Chat và không dùng được với các 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 cả hai icontext được đặt thì biểu tượng sẽ xuất hiện trước văn bả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. Hành động cần thực hiện khi người dùng nhấp vào khối, chẳng hạn như mở siêu liên kết hoặc chạy hàm tuỳ chỉnh.

enabled
(deprecated)

boolean

Liệu khối này có ở trạng thái đang hoạt động và phản hồi hành động của người dùng hay không. Mặc định là true. Không dùng nữa. Sử dụng disabled thay thế.

disabled

boolean

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

altText

string

Văn bản thay thế được dùng cho khả năng 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ở một siêu liên kết, hãy ghi: "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&quot;.

CollapseControl

Trình bày chế độ kiểm soát mở rộng và thu gọn. Dùng được trên các ứng dụng Google Chat và không dùng được với các 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. Hãy 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 mở rộng nút và thu gọn nút. 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, nút mặc định sẽ được sử dụng.

collapseButton

object (Button)

Không bắt buộc. Xác định nút tuỳ chỉnh để thu gọn phần đó. Bạn phải đặt cả trường mở rộng nút và thu gọn nút. 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, nút mặc định sẽ được sử dụng.

DividerStyle

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

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

Enum
DIVIDER_STYLE_UNSPECIFIED Không sử dụng. Không xác định.
SOLID_DIVIDER Tùy chọn mặc định. Kết xuất đường phân chia đồng nhất giữa các phần.
NO_DIVIDER Nếu được đặt, sẽ không có đường phân chia nào hiển thị giữa các phần.

CardAction

Hành động đối với 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.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứ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)

Chiến lược phát hành đĩa đơn onClick cho mục hành động này.

CardFixedFooter

Một chân trang cố định (cố định) xuất hiện ở cuối thẻ.

Chế độ cài đặt fixedFooter mà không chỉ định primaryButton hoặc secondaryButton gây ra lỗi.

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

Dùng được 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 đó phải là nút văn bản có văn bản và được đặt màu.

secondaryButton

object (Button)

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

DisplayStyle

Trong Tiện ích bổ sung của Google Workspace, hãy xác định cách thẻ hiển thị.

Dùng được cho các tiện ích bổ sung của Google Workspace và không dùng được trong ứng dụng Google Chat.

Enum
DISPLAY_STYLE_UNSPECIFIED Khô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 phủ 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ẽ được đẩy vào 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ẻ.