Cards v2

卡片

資訊卡支援已定義的版面配置、按鈕等互動式 UI 元素,以及圖片等互動式多媒體。使用資訊卡呈現詳細資訊、收集使用者資訊,並引導使用者採取後續步驟。

在 Google Chat 中,資訊卡會顯示在多個位置:

  • 單獨訊息。
  • 在簡訊下方顯示簡訊。
  • 當做對話方塊

以下 JSON 範例建立具有「特色」功能的「聯絡人卡片」:

  • 包含聯絡人姓名、職稱和顯示圖片的標頭。
  • 內含聯絡資訊的區段,包括格式化文字。
  • 使用者只要按一下按鈕即可分享聯絡人,或查看更多資訊。

聯絡人資訊卡範例

{
  "cardsV2": [
    {
      "cardId": "unique-card-id",
      "card": {
        "header": {
          "title": "Sasha",
          "subtitle": "Software Engineer",
          "imageUrl":
          "https://developers.google.com/chat/images/quickstart-app-avatar.png",
          "imageType": "CIRCLE",
          "imageAltText": "Avatar for Sasha",
        },
        "sections": [
          {
            "header": "Contact Info",
            "collapsible": true,
            "uncollapsibleWidgetsCount": 1,
            "widgets": [
              {
                "decoratedText": {
                  "startIcon": {
                    "knownIcon": "EMAIL",
                  },
                  "text": "sasha@example.com",
                }
              },
              {
                "decoratedText": {
                  "startIcon": {
                    "knownIcon": "PERSON",
                  },
                  "text": "<font color=\"#80e27e\">Online</font>",
                },
              },
              {
                "decoratedText": {
                  "startIcon": {
                    "knownIcon": "PHONE",
                  },
                  "text": "+1 (555) 555-1234",
                }
              },
              {
                "buttonList": {
                  "buttons": [
                    {
                      "text": "Share",
                      "onClick": {
                        "openLink": {
                          "url": "https://example.com/share",
                        }
                      }
                    },
                    {
                      "text": "Edit",
                      "onClick": {
                        "action": {
                          "function": "goToView",
                          "parameters": [
                            {
                              "key": "viewType",
                              "value": "EDIT",
                            }
                          ],
                        }
                      }
                    },
                  ],
                }
              },
            ],
          },
        ],
      },
    }
  ],
}
JSON 表示法
{
  "header": {
    object (CardHeader)
  },
  "sections": [
    {
      object (Section)
    }
  ],
  "cardActions": [
    {
      object (CardAction)
    }
  ],
  "name": string,
  "fixedFooter": {
    object (CardFixedFooter)
  },
  "displayStyle": enum (DisplayStyle),
  "peekCardHeader": {
    object (CardHeader)
  }
}
欄位
header

object (CardHeader)

資訊卡的標題。標頭通常會包含主要圖片和標題。標頭一律會顯示在資訊卡頂端。

sections[]

object (Section)

包含一系列小工具。每個版面都有自己的選用標題。系統會以分隔線分隔多個區段。

cardActions[]

object (CardAction)

資訊卡的動作。這些動作會新增至資訊卡的工具列選單。

Chat 應用程式資訊卡沒有工具列,因此 Chat 應用程式不支援 cardActions[]

舉例來說,下列 JSON 會使用 SettingsSend 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

卡片名稱。可做為卡片瀏覽中的卡片 ID。

Chat 應用程式不支援資訊卡導覽功能,因此會忽略這個欄位。

displayStyle

enum (DisplayStyle)

在 Google Workspace 外掛程式中,設定 peekCardHeader 的顯示屬性。

Chat 應用程式不支援這項功能。

peekCardHeader

object (CardHeader)

顯示內容時,版資訊卡標頭會做為預留位置,讓使用者在首頁資訊卡與內容資訊卡之間來回瀏覽。

Chat 應用程式不支援這項功能。

CardHeader

代表卡片標頭。

JSON 表示法
{
  "title": string,
  "subtitle": string,
  "imageType": enum (ImageType),
  "imageUrl": string,
  "imageAltText": string
}
欄位
title

string

必要欄位。資訊卡標題的標題。標題的固定高度:如果同時指定標題和副標題,每個標題都必須佔一行。如果僅指定標題,則兩行會佔用兩行。

subtitle

string

資訊卡標題的副標題。如果有指定,其會在 title 下方的一行中顯示。

imageType

enum (ImageType)

用來裁剪圖片的形狀。

imageUrl

string

資訊卡標題中的圖片 HTTPS 網址。

imageAltText

string

本圖片顯示的無障礙文字。

ImageType

用來裁剪圖片的形狀。

列舉
SQUARE 預設值。套用正方形遮罩。舉例來說,4x3 圖片變成 3x3。
CIRCLE 為圖片套用圓形遮罩。舉例來說,4x3 的圖片變成圓形直徑為 3 的圓形。

區域

區段包含一系列按照指定順序垂直顯示的小工具。

JSON 表示法
{
  "header": string,
  "widgets": [
    {
      object (Widget)
    }
  ],
  "collapsible": boolean,
  "uncollapsibleWidgetsCount": integer
}
欄位
header

string

顯示在區段頂端的文字。支援簡易 HTML 格式文字。想進一步瞭解文字格式,請參閱在 Google Chat 應用程式中設定文字格式在 Google Workspace 外掛程式中設定文字格式

widgets[]

object (Widget)

區段中的所有小工具。必須至少包含一個小工具。

collapsible

boolean

指出這個部分是否可收合。

可收合的部分會隱藏部分或所有小工具,但使用者可以按一下「顯示更多」,展開這個部分來顯示隱藏的小工具。使用者可以按一下「顯示較少」來隱藏小工具。

如要判斷哪些小工具已隱藏,請指定 uncollapsibleWidgetsCount

uncollapsibleWidgetsCount

integer

無法收合的小工具數量,即使在收合區段時仍會顯示。

舉例來說,如果一個區段包含五個小工具,且 uncollapsibleWidgetsCount 設為 2,那麼前兩個小工具會一律顯示,而最後三個是收合。uncollapsibleWidgetsCount 只有在 collapsibletrue 時,才會列入計算。

小工具

每張資訊卡都是由小工具組成。

小工具是一種複合物件,可能代表文字、圖片、按鈕及其他物件類型。

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)
  }
  // End of list of possible types for union field data.
}
欄位
horizontalAlignment

enum (HorizontalAlignment)

指定小工具是否對齊資料欄的左側、中間或中間。

聯集欄位 data。小工具只能包含下列其中一個項目。您可以使用多個小工具欄位來顯示更多項目。data 只能是下列其中一個值:
textParagraph

object (TextParagraph)

顯示文字段落。支援簡易 HTML 格式文字。想進一步瞭解文字格式,請參閱在 Google Chat 應用程式中設定文字格式在 Google Workspace 外掛程式中設定文字格式

例如,下列 JSON 會建立粗體文字:

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

object (Image)

顯示圖片。

舉例來說,以下 JSON 會建立含有替代文字的圖片:

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

object (DecoratedText)

顯示裝飾文字項目。

舉例來說,以下 JSON 會建立裝飾文字小工具,當中顯示電子郵件地址:

"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)

按鈕清單。

舉例來說,下列 JSON 會建立兩個按鈕。第一個是藍色文字按鈕,第二個則是開啟連結的圖片按鈕:

"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)

顯示使用者可輸入文字的文字方塊。

舉例來說,下列 JSON 會建立電子郵件地址的文字輸入:

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

再舉一個例子,下列 JSON 會建立含有靜態建議的程式設計語言文字輸入:

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

object (SelectionInput)

顯示選取控制項,可讓使用者選取項目。包括控制項、圓形按鈕、切換按鈕或下拉式選單選項。

舉例來說,以下 JSON 會建立下拉式選單,讓使用者選擇大小:

"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)

顯示小工具,方便使用者輸入日期、時間,或日期和時間。

舉例來說,下列 JSON 會建立日期時間挑選器,以安排預約時間:

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

object (Divider)

顯示小工具的水平分隔線。

舉例來說,下列 JSON 會建立分隔線:

"divider": {
}
grid

object (Grid)

顯示包含一系列項目的格線。

格線支援不限數量的資料欄和項目。列數取決於數字的上方邊界除以欄數。內含 10 個項目和 2 欄的格線共有 5 列。網格內有 11 個項目和 2 欄,共有 6 列。

舉例來說,下列 JSON 會建立包含 1 個項目的 2 個資料欄格線:

"grid": {
  "title": "A fine collection of items",
  "columnCount": 2,
  "borderStyle": {
    "type": "STROKE",
    "cornerRadius": 4
  },
  "items": [
    {
      "image": {
        "imageUri": "https://www.example.com/image.png",
        "cropStyle": {
          "type": "SQUARE"
        },
        "borderStyle": {
          "type": "STROKE"
        }
      },
      "title": "An item",
      "textAlignment": "CENTER"
    }
  ],
  "onClick": {
    "openLink": {
      "url": "https://www.example.com"
    }
  }
}
columns

object (Columns)

最多可顯示 2 欄。

如要加入超過 2 欄,或使用資料列,請使用 Grid 小工具。

舉例來說,以下 JSON 會建立 2 個資料欄,每個資料欄包含文字段落:

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

文字段落

支援格式設定的文字段落。想進一步瞭解文字格式,請參閱在 Google Chat 應用程式中設定文字格式在 Google Workspace 外掛程式中設定文字格式

JSON 表示法
{
  "text": string
}
欄位
text

string

小工具中顯示的文字。

圖片

使用網址指定的圖片,且可以執行 onClick 動作。

JSON 表示法
{
  "imageUrl": string,
  "onClick": {
    object (OnClick)
  },
  "altText": string
}
欄位
imageUrl

string

代管圖片的 HTTPS 網址。

例如:

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

object (OnClick)

使用者按一下圖片即可觸發這個動作。

altText

string

本圖片顯示的無障礙文字。

OnClick

代表當使用者點選資訊卡上的互動元素 (例如按鈕) 時的回應方式。

JSON 表示法
{

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

聯集欄位 data

data 只能是下列其中一個值:

action

object (Action)

如果有指定,就會由此 onClick 觸發動作。

card

object (Card)

指定新的卡片後,系統會將新資訊卡推送至卡片堆疊。

支援 Google Workspace 外掛程式,但不支援 Chat 應用程式。

動作

說明提交表單時的行為。舉例來說,您可以叫用 Apps Script 指令碼來處理表單。如果觸發了動作,系統會將表單值傳送至伺服器。

JSON 表示法
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction)
}
欄位
function

string

使用者點選或延遲啟用內含元素時,叫用的自訂函式。

如需用途範例,請參閱「建立互動式卡片」一文。

parameters[]

object (ActionParameter)

動作參數清單。

loadIndicator

enum (LoadIndicator)

指定動作在呼叫動作時顯示的載入指標。

persistValues

boolean

表示表單值在動作完成後是否持續存在。預設值為 false

如果設為 true,則在觸發動作後仍會保留表單值。如要讓使用者在處理動作時進行變更,請將 LoadIndicator 設為 NONE。如果是 Chat 應用程式中的資訊卡訊息,您也必須將動作的 ResponseType 設為 UPDATE_MESSAGE,並透過含有該動作的資訊卡使用相同的 cardId

如為 false,則會在觸發動作時清除表單值。如要防止使用者在處理動作時進行變更,請將 LoadIndicator 設為 SPINNER

interaction

enum (Interaction)

選用設定。開啟對話方塊時為必填欄位。

回應使用者互動的方式,例如點選資訊卡訊息中的按鈕。

如未指定,應用程式會照常執行 action (例如開啟連結或執行函式)。

指定 interaction 後,應用程式就能以特殊的互動方式回應。舉例來說,如果將 interaction 設為 OPEN_DIALOG,應用程式就能開啟對話方塊。指定時,系統不會顯示載入指標。

支援 Chat 應用程式,但不支援 Google Workspace 外掛程式。指定外掛程式時,系統會移除整個資訊卡,用戶端也不會顯示任何內容。

ActionParameter

叫用叫用方法時要提供的字串參數清單。例如三個延後按鈕:立即延後、延後一天或延後下週。您可以使用 action method = snooze(),在字串參數清單中傳遞延後類型和延後時間。

詳情請參閱 CommonEventObject

JSON 表示法
{
  "key": string,
  "value": string
}
欄位
key

string

動作指令碼的參數名稱。

value

string

參數的值。

LoadIndicator

指定動作在呼叫動作時顯示的載入指標。

列舉
SPINNER 顯示旋轉圖示,表示正在載入內容。
NONE 不會顯示任何內容。

互動

選用設定。開啟對話方塊時為必填欄位。

回應使用者互動的方式,例如點選資訊卡訊息中的按鈕。

如未指定,應用程式會照常執行 action (例如開啟連結或執行函式)。

指定 interaction 後,應用程式就能以特殊的互動方式回應。舉例來說,如果將 interaction 設為 OPEN_DIALOG,應用程式就能開啟對話方塊

指定時,系統不會顯示載入指標。

支援 Chat 應用程式,但不支援 Google Workspace 外掛程式。指定外掛程式時,系統會移除整個資訊卡,用戶端也不會顯示任何內容。

列舉
INTERACTION_UNSPECIFIED 預設值。action 會照常執行。
OPEN_DIALOG

開啟對話方塊,也就是 Chat 應用程式使用的視窗型介面,用於與使用者互動。

只有 Chat 應用程式支援在資訊卡訊息中點選按鈕時提供支援。

Google Workspace 外掛程式不支援這項功能。指定外掛程式時,系統會移除整個資訊卡,用戶端也不會顯示任何內容。

OpenAs

OnClick 動作開啟連結時,用戶端可以開啟完整大小視窗 (如果是用戶端使用的頁框) 或重疊元素 (例如彈出式視窗)。實作方式取決於用戶端平台功能,而如果用戶端不支援這項功能,則系統可能會忽略您設定的值。 所有用戶端均支援 FULL_SIZE

支援 Google Workspace 外掛程式,但不支援 Chat 應用程式。

列舉
FULL_SIZE 連結會在原尺寸視窗中開啟 (如果是用戶端使用的頁框)。
OVERLAY 連結隨即會以重疊元素的形式開啟,例如彈出式視窗。

OnClose

關閉由 OnClick 動作開啟的連結時,用戶端會執行的動作。

實作取決於用戶端平台功能。例如,網路瀏覽器可能會使用 OnClose 處理常式在彈出式視窗中開啟連結。

如果同時設定 OnOpenOnClose 處理常式,且用戶端平台不支援這兩種值,則系統會優先採用 OnClose

支援 Google Workspace 外掛程式,但不支援 Chat 應用程式。

列舉
NOTHING 預設值。卡片未重新載入;系統並未執行任何動作。
RELOAD

在子視窗關閉後重新載入卡片。

OpenAs.OVERLAY 搭配使用時,子視窗會當做強制回應對話方塊,且系統會封鎖父項資訊卡,直到子視窗關閉為止。

裝飾文字

在小工具上方顯示文字和選用裝飾的文字,例如文字上方或下方、文字前方的圖示、選取小工具,或是文字後方的按鈕。

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.
}
欄位
icon
(deprecated)

object (Icon)

已淘汰,並改用 startIcon

startIcon

object (Icon)

顯示在文字前方的圖示。

topLabel

string

顯示在 text 上方的文字。一律遭到截斷。

text

string

必要欄位。主要文字。

支援簡易格式。想進一步瞭解文字格式,請參閱在 Google Chat 應用程式中設定文字格式在 Google Workspace 外掛程式中設定文字格式

wrapText

boolean

文字換行設定。如果設為 true,文字會換行並顯示在多行。否則文字會遭到截斷。

僅適用於 text,不適用於 topLabelbottomLabel

bottomLabel

string

顯示在 text 下方的文字。一律換行。

onClick

object (OnClick)

使用者按一下 topLabelbottomLabel 時,就會觸發這項操作。

聯集欄位 control。在 decoratedText 小工具右側的文字右側顯示的按鈕、切換按鈕、核取方塊或圖片。control 只能是下列其中一個值:
button

object (Button)

使用者可點選的按鈕觸發動作。

switchControl

object (SwitchControl)

使用者可以按一下的切換小工具,用於變更狀態及觸發動作。

endIcon

object (Icon)

文字後方顯示的圖示。

支援內建自訂圖示。

圖示

資訊卡上的小工具中顯示的圖示。

支援內建自訂圖示。

JSON 表示法
{
  "altText": string,
  "imageType": enum (ImageType),

  // Union field icons can be only one of the following:
  "knownIcon": string,
  "iconUrl": string
  // End of list of possible types for union field icons.
}
欄位
altText

string

選用設定。無障礙圖示圖示說明。如果未指定,系統會提供預設值 Button。最佳做法是為圖示的實用資訊設定說明,並說明圖示的用途 (如果有的話)。例如 A user's account portraitOpens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat

如果您在 Button 中設定圖示,當使用者將滑鼠遊標懸停在按鈕上時,altText 就會顯示為輔助文字。不過,如果按鈕也設定了 text,則系統會忽略圖示的 altText

imageType

enum (ImageType)

套用至圖片的裁剪樣式。在某些情況下,套用 CIRCLE 裁剪會使圖像大於內建圖示。

聯集欄位 icons。資訊卡小工具上的圖示。icons 只能是下列其中一個值:
knownIcon

string

顯示 Google Workspace 提供的其中一個內建圖示。

舉例來說,如要顯示飛機圖示,請指定 AIRPLANE。搭公車,請指定 BUS

如需完整的支援圖示清單,請參閱內建圖示

iconUrl

string

顯示由 HTTPS 網址代管的自訂圖示。

例如:

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

支援的檔案類型包括 .png.jpg

按鈕

使用者可點擊的文字、圖示或文字和圖示按鈕。

如要將圖片設為可點擊按鈕,請指定 Image (而非 ImageComponent),並設定 onClick 動作。

JSON 表示法
{
  "text": string,
  "icon": {
    object (Icon)
  },
  "color": {
    object (Color)
  },
  "onClick": {
    object (OnClick)
  },
  "disabled": boolean,
  "altText": string
}
欄位
text

string

按鈕中顯示的文字。

icon

object (Icon)

圖示圖片。如果同時設定了 icontext,則圖示會顯示在文字之前。

color

object (Color)

如果設定了按鈕,按鈕會填入純底色,字型顏色也會改變,以便與背景顏色形成對比。例如,設定藍色背景可能會產生白色文字。

如未設定,圖片背景為白色,字型顏色為藍色。

以紅色、綠色和藍色表示,每個欄位的值都是兩種表示的 float 數字:介於 0 到 255 之間的數字除以 255 (153/255),或是介於 0 到 1 (0.6) 之間的值。0 代表沒有顏色,1 或 255/255 則代表 RGB 量表上的完整顏色。

視需要設定 alpha,讓系統透過以下方程式設定透明度:

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

alpha 中,1 的值會是一個純色,而 0 的值則與完全透明的顏色對應。

舉例來說,下列顏色代表半透明的紅色:

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

object (OnClick)

必要欄位。使用者點選按鈕時要執行的動作,例如開啟超連結或執行自訂函式。

disabled

boolean

如果設為 true,按鈕會顯示為停用狀態,且不會回應使用者動作。

altText

string

無障礙工具使用的替代文字。

設定說明文字,讓使用者瞭解按鈕的用途。舉例來說,如果某個按鈕會開啟超連結,你可以寫:「開啟新的瀏覽器分頁,然後前往 Google Chat 開發人員說明文件 (https://developers.google.com/chat"」)。

顏色

代表 RGBA 色域中的顏色。這個樣式旨在簡化,在各種語言中輕鬆轉換各種語言的色彩配置和情況。舉例來說,此表示法的欄位在 Java 中可以輕易地提供給 java.awt.Color 的建構函式;您也可以宣告在 iOS 中傳遞至 UIColor 的 +colorWithRed:green:blue:alpha 方法,而且只要簡單幾個步驟,就能在 JavaScript 中輕鬆轉換成 CSS rgba() 字串。

這個參考頁面未提供應用於解讀 RGB 值的絕對色彩空間相關資訊,例如 sRGB、Adobe RGB、DCI-P3 和 BT.2020。根據預設,應用程式應假設使用 sRGB 色域。

在需要決定顏色等值時,除非除非另有說明,否則實作項目在紅色、綠色、藍色和 Alpha 值方面最多要等於 1e-5,且兩種顏色完全相同。

範例 (Java):

 import com.google.type.Color;

 // ...
 public static java.awt.Color fromProto(Color protocolor) {
   float alpha = protocolor.hasAlpha()
       ? protocolor.getAlpha().getValue()
       : 1.0;

   return new java.awt.Color(
       protocolor.getRed(),
       protocolor.getGreen(),
       protocolor.getBlue(),
       alpha);
 }

 public static Color toProto(java.awt.Color color) {
   float red = (float) color.getRed();
   float green = (float) color.getGreen();
   float blue = (float) color.getBlue();
   float denominator = 255.0;
   Color.Builder resultBuilder =
       Color
           .newBuilder()
           .setRed(red / denominator)
           .setGreen(green / denominator)
           .setBlue(blue / denominator);
   int alpha = color.getAlpha();
   if (alpha != 255) {
     result.setAlpha(
         FloatValue
             .newBuilder()
             .setValue(((float) alpha) / denominator)
             .build());
   }
   return resultBuilder.build();
 }
 // ...

範例 (iOS / Obj-C):

 // ...
 static UIColor* fromProto(Color* protocolor) {
    float red = [protocolor red];
    float green = [protocolor green];
    float blue = [protocolor blue];
    FloatValue* alpha_wrapper = [protocolor alpha];
    float alpha = 1.0;
    if (alpha_wrapper != nil) {
      alpha = [alpha_wrapper value];
    }
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
 }

 static Color* toProto(UIColor* color) {
     CGFloat red, green, blue, alpha;
     if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
       return nil;
     }
     Color* result = [[Color alloc] init];
     [result setRed:red];
     [result setGreen:green];
     [result setBlue:blue];
     if (alpha <= 0.9999) {
       [result setAlpha:floatWrapperWithValue(alpha)];
     }
     [result autorelease];
     return result;
}
// ...

範例 (JavaScript):

// ...

var protoToCssColor = function(rgb_color) {
   var redFrac = rgb_color.red || 0.0;
   var greenFrac = rgb_color.green || 0.0;
   var blueFrac = rgb_color.blue || 0.0;
   var red = Math.floor(redFrac * 255);
   var green = Math.floor(greenFrac * 255);
   var blue = Math.floor(blueFrac * 255);

   if (!('alpha' in rgb_color)) {
      return rgbToCssColor(red, green, blue);
   }

   var alphaFrac = rgb_color.alpha.value || 0.0;
   var rgbParams = [red, green, blue].join(',');
   return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};

var rgbToCssColor = function(red, green, blue) {
  var rgbNumber = new Number((red << 16) | (green << 8) | blue);
  var hexString = rgbNumber.toString(16);
  var missingZeros = 6 - hexString.length;
  var resultBuilder = ['#'];
  for (var i = 0; i < missingZeros; i++) {
     resultBuilder.push('0');
  }
  resultBuilder.push(hexString);
  return resultBuilder.join('');
};

// ...
JSON 表示法
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
欄位
red

number

以顏色 [0, 1] 表示的值,在顏色中等於的紅色量。

green

number

以顏色 [0, 1] 為單位的值,在顏色中會以綠色值表示。

blue

number

以顏色 [0, 1] 為單位的值,表示藍色值的數值。

alpha

number

這個顏色應套用至像素的分數。也就是說,最終像素顏色是由方程式定義:

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

也就是說,1.0 的值代表純色,而 0.0 值則對應至完全透明的顏色。這會使用包裝函式訊息,而非簡單的浮點純量,以便區分預設值和未設定的值。省略時,這個顏色物件會以純色表示 (如同 Alpha 值已明確指定為 1.0 的值)。

SwitchControl

切換切換按鈕或 decoratedText 小工具中的核取方塊。

僅適用於 decoratedText 小工具。

JSON 表示法
{
  "name": string,
  "value": string,
  "selected": boolean,
  "onChangeAction": {
    object (Action)
  },
  "controlType": enum (ControlType)
}
欄位
name

string

表單小工具在表單輸入事件中識別的名稱。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

value

string

使用者輸入的值,做為表單輸入事件的一部分傳回。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

selected

boolean

如果選取 true,系統會切換切換按鈕。

onChangeAction

object (Action)

切換狀態變更時要執行的動作,例如要執行哪些函式。

controlType

enum (ControlType)

切換使用者介面在使用者介面中的顯示方式。

ControlType

切換使用者介面在使用者介面中的顯示方式。

列舉
SWITCH 切換樣式切換按鈕。
CHECKBOX 已淘汰,並改用 CHECK_BOX
CHECK_BOX 核取方塊。

ButtonList

水平排列的按鈕清單。

JSON 表示法
{
  "buttons": [
    {
      object (Button)
    }
  ]
}
欄位
buttons[]

object (Button)

按鈕陣列。

文字輸入

使用者可輸入文字的欄位。支援建議和變更動作。

即時通訊應用程式會在表單輸入事件期間接收及處理輸入的文字值。如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

如果您需要收集使用者的未定義或抽象資料,請使用文字輸入功能。如要收集使用者定義或列舉的資料,請使用 SelectionInput 小工具。

JSON 表示法
{
  "name": string,
  "label": string,
  "hintText": string,
  "value": string,
  "type": enum (Type),
  "onChangeAction": {
    object (Action)
  },
  "initialSuggestions": {
    object (Suggestions)
  },
  "autoCompleteAction": {
    object (Action)
  }
}
欄位
name

string

文字輸入事件中以文字表示的名稱。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

label

string

使用者介面文字輸入欄位上方顯示的文字。

指定文字,協助使用者輸入應用程式所需的資訊。舉例來說,如果您詢問某人的姓名卻需要特別的姓氏,請輸入 surname 而非 name

如未指定 hintText,則為必要欄位。否則,此為選用欄位。

hintText

string

文字輸入欄位下方顯示的文字,提示使用者輸入特定值。這些文字會持續顯示。

如未指定 label,則為必要欄位。否則,此為選用欄位。

value

string

使用者輸入的值,做為表單輸入事件的一部分傳回。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

type

enum (Type)

文字輸入欄位在使用者介面中的樣貌。例如欄位為單行或多行。

onChangeAction

object (Action)

文字輸入欄位中發生變更時該如何處理。例如為欄位新增或刪除文字。

具體措施包括執行自訂函式,或是在 Google Chat 中開啟對話方塊

initialSuggestions

object (Suggestions)

使用者可輸入的值。當使用者在文字輸入欄位中按一下時,這些值就會出現。當使用者輸入搜尋字詞時,建議值會動態篩選出符合使用者輸入的內容。

舉例來說,程式設計語言的文字輸入欄位可能會建議 Java、JavaScript、Python 和 C++。當使用者開始輸入 Jav 時,建議篩選器清單只會顯示 JavaJavaScript

建議值可協助引導使用者輸入應用程式可識別的值。參照 JavaScript 時,有些使用者可能會輸入 javascriptjava script。建議 JavaScript 可以標準化使用者與應用程式互動的方式。

指定時,TextInput.type 一律為 SINGLE_LINE,即使設為 MULTIPLE_LINE 也一樣。

autoCompleteAction

object (Action)

選用設定。指定當使用者在文字輸入欄位中提供互動建議時要採取的行動。

如未指定,建議是由 initialSuggestions 設定,並由用戶端處理。

如果有指定,應用程式就會採用此處指定的動作,例如執行自訂函式。

支援 Google Workspace 外掛程式,但不支援 Chat 應用程式。

類型

文字輸入欄位在使用者介面中的樣貌。例如單一行輸入欄位或多行輸入。

如果指定 initialSuggestionstype 一律為 SINGLE_LINE,即使設為 MULTIPLE_LINE 也一樣。

列舉
SINGLE_LINE 文字輸入欄位的一行高度固定為一行。
MULTIPLE_LINE 文字輸入欄位有多行固定高度。

建議

使用者可輸入的值。當使用者在文字輸入欄位中按一下時,這些值就會出現。當使用者輸入搜尋字詞時,建議值會動態篩選出符合使用者輸入的內容。

舉例來說,程式設計語言的文字輸入欄位可能會建議 Java、JavaScript、Python 和 C++。當使用者開始輸入 Jav 時,系統會顯示建議篩選器清單,以顯示 JavaJavaScript

建議值可協助引導使用者輸入應用程式可識別的值。參照 JavaScript 時,有些使用者可能會輸入 javascriptjava script。建議 JavaScript 可以標準化使用者與應用程式互動的方式。

指定時,TextInput.type 一律為 SINGLE_LINE,即使設為 MULTIPLE_LINE 也一樣。

JSON 表示法
{
  "items": [
    {
      object (SuggestionItem)
    }
  ]
}
欄位
items[]

object (SuggestionItem)

文字輸入欄位中自動完成自動完成功能的建議清單。

SuggestionItem

可在文字輸入欄位中輸入一個建議值。

JSON 表示法
{

  // Union field content can be only one of the following:
  "text": string
  // End of list of possible types for union field content.
}
欄位

聯集欄位 content

content 只能是下列其中一個值:

text

string

文字輸入欄位的建議輸入值。這相當於使用者輸入的內容。

SelectInputInput

這個小工具會建立一或多個使用者介面,可供使用者選取。例如下拉式選單或核取方塊。您可以使用這個小工具來收集可預測或列舉的資料。

即時通訊應用程式可以處理使用者選取或輸入的項目值。如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

如要收集使用者的未定義或抽象資料,請使用 TextInput 小工具。

JSON 表示法
{
  "name": string,
  "label": string,
  "type": enum (SelectionType),
  "items": [
    {
      object (SelectionItem)
    }
  ],
  "onChangeAction": {
    object (Action)
  }
}
欄位
name

string

識別表單輸入事件中所選輸入內容的名稱。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

label

string

使用者介面使用者介面的選取輸入欄位上方顯示的文字。

指定文字,協助使用者輸入應用程式所需的資訊。舉例來說,假設使用者從下拉式選單中選取了工作急迫性,標籤可能會為「緊急」或「選取緊急程度」。

type

enum (SelectionType)

使用者會在 SelectionInput 小工具中看到的項目類型。選取類型支援不同類型的互動。舉例來說,使用者可以勾選一或多個核取方塊,但只能從下拉式選單中選取一個值。

items[]

object (SelectionItem)

可選取項目的陣列。例如圓形按鈕或核取方塊陣列。最多支援 100 個項目。

onChangeAction

object (Action)

如果指定,表單就會在選取後變更。如未指定,您必須指定用於提交表單的獨立按鈕。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

選取類型

使用者可選取的項目格式。不同的選項支援不同類型的互動。舉例來說,使用者可以勾選多個核取方塊,但從下拉式選單中選取一個項目。

每個選擇輸入類型都只能選取一個類型。例如不支援核取方塊和切換按鈕。

列舉
CHECK_BOX 一組核取方塊。使用者可以選取一或多個核取方塊。
RADIO_BUTTON 一組圓形按鈕。使用者可以選取一個圓形按鈕。
SWITCH 一組外接切換裝置。使用者可以開啟一或多個切換按鈕。
DROPDOWN 下拉式選單。使用者可以從選單中選取一個項目。

選取項目

使用者可以在選取輸入內容中選取的項目,例如核取方塊或切換按鈕。

JSON 表示法
{
  "text": string,
  "value": string,
  "selected": boolean
}
欄位
text

string

用來識別或描述商品的文字。

value

string

與這個項目相關聯的值。用戶端應將其做為表單輸入值。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

selected

boolean

是否預設選取項目。如果所選輸入只接受一個值 (例如圓形按鈕或下拉式選單),請僅為其中一個項目設定這個欄位。

日期時間挑選器

可讓使用者輸入日期、時間,或同時輸入日期和時間。

使用者可以輸入文字,或使用挑選器選取日期和時間。如果使用者輸入的日期或時間無效,挑選器會顯示錯誤,提示使用者輸入的資訊。

JSON 表示法
{
  "name": string,
  "label": string,
  "type": enum (DateTimePickerType),
  "valueMsEpoch": string,
  "timezoneOffsetDate": integer,
  "onChangeAction": {
    object (Action)
  }
}
欄位
name

string

DateTimePicker 會在表單輸入事件中識別的名稱。

如要進一步瞭解如何使用表單輸入,請參閱接收表單資料

label

string

提示使用者輸入日期、時間,或日期和時間的文字。例如,如果使用者要安排預約,請使用 Appointment dateAppointment date and time 等標籤。

type

enum (DateTimePickerType)

小工具是否支援輸入日期、時間或日期與時間。

valueMsEpoch

string (int64 format)

小工具中顯示的預設值,以 Unix Epoch 紀元時間起算的毫秒數表示。

根據挑選器類型指定值 (DateTimePickerType):

  • DATE_AND_TIME :日曆日期與時間,以世界標準時間為準。舉例來說,如要代表世界標準時間 2023 年 1 月 1 日中午 12:00,請使用 1672574400000
  • DATE_ONLY :日曆日期為世界標準時間 00:00:00。舉例來說,如要代表 2023 年 1 月 1 日,請使用 1672531200000
  • TIME_ONLY : (世界標準時間)。舉例來說,如要代表下午 12:00,請使用 43200000 (或 12 * 60 * 60 * 1000)。
timezoneOffsetDate

integer

代表時區與世界標準時間相差的時區 (以分鐘為單位)。設定完成後,valueMsEpoch 就會顯示指定時區。如果不設定,預設值為使用者的時區設定。

onChangeAction

object (Action)

當使用者在 DateTimePicker 介面中按一下「Save」或「Clear」時,就會觸發這個事件。

DateTimePickerType

DateTimePicker 小工具中的日期和時間格式。決定使用者是否可輸入日期、時間,或同時輸入日期和時間。

列舉
DATE_AND_TIME 使用者輸入日期和時間。
DATE_ONLY 使用者輸入日期。
TIME_ONLY 使用者輸入時間。

分隔線

以水平線顯示小工具之間的分隔線。

舉例來說,下列 JSON 會建立分隔線:

"divider": {}

格線

顯示內含一系列項目的格線。項目只能包含文字或圖片。

格線支援不限數量的資料欄和項目。列數取決於項目除以欄數。內含 10 個項目和 2 欄的格線共有 5 列。網格內有 11 個項目和 2 欄,共有 6 列。

針對回應式資料欄,或是加入超過文字或圖片,請使用 Columns

舉例來說,下列 JSON 會建立包含 1 個項目的 2 個資料欄格線:

"grid": {
  "title": "A fine collection of items",
  "columnCount": 2,
  "borderStyle": {
    "type": "STROKE",
    "cornerRadius": 4
  },
  "items": [
    {
      "image": {
        "imageUri": "https://www.example.com/image.png",
        "cropStyle": {
          "type": "SQUARE"
        },
        "borderStyle": {
          "type": "STROKE"
        }
      },
      "title": "An item",
      "textAlignment": "CENTER"
    }
  ],
  "onClick": {
    "openLink": {
      "url": "https://www.example.com"
    }
  }
}
JSON 表示法
{
  "title": string,
  "items": [
    {
      object (GridItem)
    }
  ],
  "borderStyle": {
    object (BorderStyle)
  },
  "columnCount": integer,
  "onClick": {
    object (OnClick)
  }
}
欄位
title

string

格線標題中顯示的文字。

items[]

object (GridItem)

格線檢視中的項目。

borderStyle

object (BorderStyle)

套用至每個格線項目的邊框樣式。

columnCount

integer

格線中顯示的欄數。如果未指定這個欄位,則會使用預設值,且預設值會因格狀顯示位置 (對話方塊和隨播廣告) 而異。

onClick

object (OnClick)

每個個別格線項目都會重複使用此回呼,但在回呼參數新增的項目清單中,有項目的 ID 和索引。

GridItem

以格狀版面配置中的項目呈現。項目可以包含文字、圖片,或是同時包含文字和圖片。

JSON 表示法
{
  "id": string,
  "image": {
    object (ImageComponent)
  },
  "title": string,
  "subtitle": string,
  "layout": enum (GridItemLayout)
}
欄位
id

string

使用者此格線項目指定的 ID。這個 ID 會在父項格線的 onClick 回呼參數中傳回。

image

object (ImageComponent)

格線項目中顯示的圖片。

title

string

格線項目標題。

subtitle

string

格線項目的子標題。

layout

enum (GridItemLayout)

用於格線項目的版面配置。

ImageComponent

代表圖片。

JSON 表示法
{
  "imageUri": string,
  "altText": string,
  "cropStyle": {
    object (ImageCropStyle)
  },
  "borderStyle": {
    object (BorderStyle)
  }
}
欄位
imageUri

string

圖片網址。

altText

string

圖片的無障礙標籤。

cropStyle

object (ImageCropStyle)

要套用至圖片的裁剪樣式。

borderStyle

object (BorderStyle)

套用至圖片的邊框樣式。

ImageCropStyle

代表套用至圖片的裁剪樣式。

以下範例說明如何套用 16:9 的長寬比:

cropStyle {
 "type": "RECTANGLE_CUSTOM",
 "aspectRatio": 16/9
}
JSON 表示法
{
  "type": enum (ImageCropType),
  "aspectRatio": number
}
欄位
type

enum (ImageCropType)

裁剪類型。

aspectRatio

number

如果裁剪類型為 RECTANGLE_CUSTOM,要使用的長寬比。

以下範例說明如何套用 16:9 的長寬比:

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

ImageCropType

代表套用至圖片的裁剪樣式。

列舉
IMAGE_CROP_TYPE_UNSPECIFIED 請勿使用。未指定。
SQUARE 預設值。套用正方形裁剪。
CIRCLE 套用圓形裁剪。
RECTANGLE_CUSTOM 套用自訂長寬比的矩形裁剪功能。使用 aspectRatio 設定自訂顯示比例。
RECTANGLE_4_3 套用長寬比為 4:3 的矩形裁剪功能。

BorderStyle

資訊卡或小工具框線的樣式選項,包括邊框類型和顏色。

JSON 表示法
{
  "type": enum (BorderType),
  "strokeColor": {
    object (Color)
  },
  "cornerRadius": integer
}
欄位
type

enum (BorderType)

邊框類型。

strokeColor

object (Color)

類型為 BORDER_TYPE_STROKE 時要使用的顏色。

cornerRadius

integer

框線的圓角半徑。

BorderType

代表套用至小工具的邊框類型。

列舉
BORDER_TYPE_UNSPECIFIED 請勿使用。未指定。
NO_BORDER 預設值。無邊框。
STROKE 大綱。

GridItemLayout

代表格線項目提供的各種版面配置選項。

列舉
GRID_ITEM_LAYOUT_UNSPECIFIED 請勿使用。未指定。
TEXT_BELOW 標題和副標題會顯示在格線項目的圖片下方。
TEXT_ABOVE 標題和副標題會顯示在格線項目的圖片上方。

Columns 小工具最多可在資訊卡訊息或對話方塊中顯示 2 個資料欄。您可以在每一欄中新增小工具;小工具按指定順序顯示。

每個欄的高度是由高的欄決定。舉例來說,如果第一欄的高度高於第二欄,這兩欄的高度即為第一欄。每個欄可包含不同數量的小工具,因此您無法定義資料列,或在不同欄之間對齊小工具。

資料欄並排顯示。您可以使用 HorizontalSizeStyle 欄位自訂每個資料欄的寬度。如果使用者的螢幕寬度太小,第二欄就會位於第一欄下方:

  • 在網站上,如果螢幕寬度小於或等於 480 像素,第二欄就會換行。
  • 在 iOS 裝置上,如果螢幕寬度小於或等於 300 pt,第二欄就會換行。
  • 在 Android 裝置上,如果螢幕寬度小於或等於 320 dp,第二欄就會換行。

如要加入超過 2 欄,或使用資料列,請使用 Grid 小工具。

支援 Chat 應用程式,但不支援 Google Workspace 外掛程式。

JSON 表示法
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
欄位
columnItems[]

object (Column)

資料欄陣列。資訊卡或對話方塊中最多可加入 2 個欄。

資料欄。

JSON 表示法
{
  "horizontalSizeStyle": enum (HorizontalSizeStyle),
  "horizontalAlignment": enum (HorizontalAlignment),
  "verticalAlignment": enum (VerticalAlignment),
  "widgets": [
    {
      object (Widgets)
    }
  ]
}
欄位
horizontalSizeStyle

enum (HorizontalSizeStyle)

說明資料欄如何填滿資訊卡寬度。

horizontalAlignment

enum (HorizontalAlignment)

指定小工具是否對齊資料欄的左側、中間或中間。

verticalAlignment

enum (VerticalAlignment)

指定小工具是否與資料欄頂端、底部或中央對齊。

widgets[]

object (Widgets)

一欄內含小工具陣列。小工具會依照指定的順序顯示。

HorizontalSizeStyle

說明資料欄如何填滿資訊卡寬度。每個欄的寬度都取決於 HorizontalSizeStyle 和該欄中小工具的寬度。

列舉
HORIZONTAL_SIZE_STYLE_UNSPECIFIED 請勿使用。未指定。
FILL_AVAILABLE_SPACE 預設值。欄會填滿可用空間,最多可達資訊卡寬度的 70%。如果兩個資料欄都設為 FILL_AVAILABLE_SPACE,每個資料欄都會填滿 50% 的空間。
FILL_MINIMUM_SPACE 欄會填滿空間下限,而且不會超過資訊卡寬度的 30%。

HorizontalAlignment

指定小工具是否對齊資料欄的左側、中間或中間。

列舉
HORIZONTAL_ALIGNMENT_UNSPECIFIED 請勿使用。未指定。
START 預設值。將小工具對齊欄的起始位置。如果是由左到右的版面配置,請靠左對齊。從右到左的版面配置,會對齊右側。
CENTER 將小工具對齊資料欄的中央。
END 將小工具對齊欄的結尾位置。針對由左到右的版面配置,將小工具對齊右側。使用由右到左的版面配置,將小工具對齊左側。

VerticalAlignment

指定小工具是否與資料欄頂端、底部或中央對齊。

列舉
VERTICAL_ALIGNMENT_UNSPECIFIED 請勿使用。未指定。
CENTER 預設值。將小工具對齊資料欄的中央。
TOP 將小工具對齊資料欄頂端。
BOTTOM 將小工具對齊資料欄底部。

小工具

支援中可加入一欄的小工具。

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)
  }
  // End of list of possible types for union field data.
}
欄位

聯集欄位 data

data 只能是下列其中一個值:

textParagraph

object (TextParagraph)

TextParagraph」小工具。

image

object (Image)

Image」小工具。

decoratedText

object (DecoratedText)

DecoratedText」小工具。

buttonList

object (ButtonList)

ButtonList」小工具。

textInput

object (TextInput)

TextInput」小工具。

selectionInput

object (SelectionInput)

SelectionInput」小工具。

dateTimePicker

object (DateTimePicker)

DateTimePicker」小工具。

CardAction

資訊卡動作是指與資訊卡相關的動作。舉例來說,應付憑據資訊卡可能包含多項操作,例如刪除月結單、電子郵件發票,或是在瀏覽器中開啟發票。

Chat 應用程式不支援這項功能。

JSON 表示法
{
  "actionLabel": string,
  "onClick": {
    object (OnClick)
  }
}
欄位
actionLabel

string

顯示為動作選單項目的標籤。

onClick

object (OnClick)

此操作項目的 onClick 動作。

CardFixedFooter

顯示在資訊卡底部的永久性 (固定式) 頁尾。

設定 fixedFooter 時,如未指定 primaryButtonsecondaryButton,就會發生錯誤。

適用於 Google Workspace 外掛程式和即時通訊應用程式。如果是 Chat 應用程式,您可以在對話方塊中使用固定的頁尾,但不得用於資訊卡訊息

JSON 表示法
{
  "primaryButton": {
    object (Button)
  },
  "secondaryButton": {
    object (Button)
  }
}
欄位
primaryButton

object (Button)

已修正頁尾的主要按鈕。按鈕必須是包含文字顏色和顏色的文字按鈕。

secondaryButton

object (Button)

固定頁尾的次要按鈕。按鈕必須是包含文字顏色和顏色的文字按鈕。如果設定了 secondaryButton,您也必須設定 primaryButton

DisplayStyle

在 Google Workspace 外掛程式中,決定卡片的顯示方式。

Chat 應用程式不支援這項功能。

列舉
DISPLAY_STYLE_UNSPECIFIED 請勿使用。未指定。
PEEK 資訊卡標題會顯示在側欄底部,部分為堆疊頂端的資訊卡頂端。只要點選標題,即可將資訊卡彈出至資訊卡堆疊中。如果資訊卡沒有標頭,系統會改用產生的標頭。
REPLACE 預設值。資訊卡會取代資訊卡堆疊頂端的頂端資訊卡,藉此顯示這張資訊卡。