Cards v2

カード

Google Chat のメッセージまたは Google Workspace アドオンに表示されるカード インターフェース。

カードでは、定義済みのレイアウト、ボタンなどのインタラクティブな UI 要素、画像などのリッチメディアがサポートされます。カードを使用して詳細情報を表示し、ユーザーから情報を収集して、ユーザーを次のステップに導きます。

カードビルダーでカードをデザインしてプレビューします。

カードビルダーを開く

カードの作成方法については、次のドキュメントをご覧ください。

例: Google Chat アプリのカード メッセージ

連絡先カードの例

Google Chat でサンプルのカード メッセージを作成するには、次の JSON を使用します。

{
  "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"
                             }
                           ]
                         }
                       }
                     }
                   ]
                 }
               }
             ]
           }
         ]
       }
    }
  ]
}
JSON 表現
{
  "header": {
    object (CardHeader)
  },
  "sections": [
    {
      object (Section)
    }
  ],
  "sectionDividerStyle": enum (DividerStyle),
  "cardActions": [
    {
      object (CardAction)
    }
  ],
  "name": string,
  "fixedFooter": {
    object (CardFixedFooter)
  },
  "displayStyle": enum (DisplayStyle),
  "peekCardHeader": {
    object (CardHeader)
  }
}
フィールド
header

object (CardHeader)

カードのヘッダー。ヘッダーには通常、先頭の画像とタイトルが含まれます。ヘッダーは常にカードの上部に表示されています。

sections[]

object (Section)

ウィジェットのコレクションが含まれています。各セクションには、独自のオプションのヘッダーがあります。セクションは線の区切りで視覚的に区切られています。Google Chat アプリの例については、カードのセクションを定義するをご覧ください。

sectionDividerStyle

enum (DividerStyle)

セクション間の分割線。

cardActions[]

object (CardAction)

カードの操作。操作はカードのツールバー メニューに追加されます。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

たとえば、次の JSON は、Settings オプションと Send Feedback オプションを含むカード アクション メニューを構築します。

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

string

カードの名前。カード ナビゲーションでカード ID として使用されます。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

displayStyle

enum (DisplayStyle)

Google Workspace アドオンで、peekCardHeader の表示プロパティを設定します。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

peekCardHeader

object (CardHeader)

コンテキスト コンテンツを表示する場合、ピークカード ヘッダーはプレースホルダの役割を果たし、ユーザーはホームページ カードとコンテキスト カード間を移動できます。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

CardHeader

カードヘッダーを表します。Google Chat アプリの例については、ヘッダーを追加するをご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "title": string,
  "subtitle": string,
  "imageType": enum (ImageType),
  "imageUrl": string,
  "imageAltText": string
}
フィールド
title

string

必須。カードヘッダーのタイトル。ヘッダーの高さは固定されます。タイトルとサブタイトルの両方が指定されている場合、それぞれが 1 行を占めます。タイトルのみを指定すると、2 行が使用されます。

subtitle

string

カードヘッダーのサブタイトル。指定すると、title の下に単独の行に表示されます。

imageType

enum (ImageType)

画像の切り抜きに使用する形状。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

imageUrl

string

カードヘッダーの画像の HTTPS URL。

imageAltText

string

ユーザー補助機能に使用される、この画像の代替テキスト。

ImageType

画像の切り抜きに使用する形状。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
SQUARE デフォルト値。画像に正方形のマスクを適用します。たとえば、4x3 の画像は 3x3 になります。
CIRCLE 円形マスクを画像に適用します。たとえば、4x3 の画像は直径 3 の円になります。

セクション

セクションには、指定された順序で垂直方向にレンダリングされるウィジェットのコレクションが含まれます。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "header": string,
  "widgets": [
    {
      object (Widget)
    }
  ],
  "collapsible": boolean,
  "uncollapsibleWidgetsCount": integer
}
フィールド
header

string

セクションの上部に表示されるテキスト。シンプルな HTML 形式のテキストをサポートします。テキストの書式設定の詳細については、Google Chat アプリでのテキストの書式設定Google Workspace アドオンでのテキストの書式設定をご覧ください。

widgets[]

object (Widget)

セクションのすべてのウィジェットです。ウィジェットを少なくとも 1 つ含める必要があります。

collapsible

boolean

このセクションが折りたたみ可能かどうかを示します。

折りたたみ可能なセクションでは、一部またはすべてのウィジェットが非表示になりますが、[もっと見る] をクリックすることで、セクションを展開して非表示のウィジェットを表示できます。ユーザーは [一部を表示] をクリックすると、ウィジェットを再度非表示にできます。

非表示にするウィジェットを指定するには、uncollapsibleWidgetsCount を指定します。

uncollapsibleWidgetsCount

integer

セクションを折りたたんでも表示されている折りたたみできないウィジェットの数。

たとえば、セクションに 5 つのウィジェットが含まれていて、uncollapsibleWidgetsCount2 に設定されている場合、最初の 2 つのウィジェットは常に表示され、最後の 3 つのウィジェットはデフォルトで折りたたまれています。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/workspace/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 は 2 つのボタンを作成します。1 つ目は青色のテキストボタン、2 つ目はリンクを開く画像ボタンです。

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

アイテムのコレクションをグリッドに表示します。

グリッドは任意の数の列とアイテムをサポートします。行数は、数値項目の上限を列数で割った値です。2 つの列に 10 個の項目があるグリッドには 5 行あります。11 個の項目と 2 列のグリッドには 6 行あります。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

たとえば、次の 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 列が表示されます。

3 つ以上の列を含める場合、または行を使用する場合は、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"
          }
        }
      ]
    }
  ]
}

TextParagraph

書式設定をサポートするテキストの段落。Google Chat アプリの例については、書式設定されたテキストの段落を追加するをご覧ください。テキストの書式設定の詳細については、Google Chat アプリでのテキストの書式設定Google Workspace アドオンでのテキストの書式設定をご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "text": string
}
フィールド
text

string

ウィジェットに表示されるテキスト。

画像

URL で指定され、onClick アクションを持つことができる画像。例については、画像を追加するをご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "imageUrl": string,
  "onClick": {
    object (OnClick)
  },
  "altText": string
}
フィールド
imageUrl

string

イメージをホストする HTTPS URL。

次に例を示します。

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

object (OnClick)

ユーザーが画像をクリックすると、このアクションがトリガーされます。

altText

string

ユーザー補助機能に使用される、この画像の代替テキスト。

OnClick

ユーザーがカードのインタラクティブな要素(ボタンなど)をクリックしたときに応答する方法を表します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

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 アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

アクション

フォーム送信時の動作を記述するアクション。たとえば、Apps Script のスクリプトを呼び出してフォームを処理できます。アクションがトリガーされると、フォームの値がサーバーに送信されます。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

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 の場合、アクションがトリガーされた後もフォームの値が残ります。アクションの処理中にユーザーが変更できるようにするには、LoadIndicatorNONE に設定します。Chat アプリのカード メッセージの場合は、アクションの ResponseTypeUPDATE_MESSAGE に設定し、アクションを含むカードの同じ cardId を使用する必要があります。

false の場合、アクションがトリガーされたときにフォームの値がクリアされます。アクションの処理中にユーザーが変更できないようにするには、LoadIndicatorSPINNER に設定します。

interaction

enum (Interaction)

省略可。ダイアログを開く場合は必要です。

ユーザーとのやり取り(カード メッセージのボタンのクリックなど)に対する処理方法。

指定しない場合、アプリは通常どおり action を実行して(リンクのオープンや関数の実行など)、応答します。

interaction を指定することで、アプリは特別なインタラクティブな方法で応答できます。たとえば、interactionOPEN_DIALOG に設定すると、アプリでダイアログを開くことができます。指定すると、読み込みインジケーターは表示されません。アドオンに指定すると、カード全体が削除され、クライアントには何も表示されません。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

ActionParameter

アクション メソッドが呼び出されたときに提供する文字列パラメータのリスト。たとえば、今すぐスヌーズ、1 日だけスヌーズ、来週の 3 つのスヌーズ ボタンを考えてみます。action method = snooze() を使用して、スヌーズのタイプと時間を文字列パラメータのリストに渡します。

詳細については、CommonEventObject をご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

アクション スクリプトのパラメータの名前。

value

string

パラメータの値。

LoadIndicator

アクションの呼び出し中にアクションが表示する読み込みインジケーターを指定します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
SPINNER コンテンツが読み込み中であることを示すスピナーを表示します。
NONE 何も表示されません。

操作

省略可。ダイアログを開く場合は必要です。

ユーザーとのやり取り(カード メッセージのボタンのクリックなど)に対する処理方法。

指定しない場合、アプリは通常どおり action を実行して(リンクのオープンや関数の実行など)、応答します。

interaction を指定することで、アプリは特別なインタラクティブな方法で応答できます。たとえば、interactionOPEN_DIALOG に設定すると、アプリでダイアログを開くことができます。

指定すると、読み込みインジケーターは表示されません。アドオンに指定すると、カード全体が削除され、クライアントには何も表示されません。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

列挙型
INTERACTION_UNSPECIFIED デフォルト値。action は通常どおり実行されます。
OPEN_DIALOG

ダイアログを開きます。ダイアログは、Chat アプリがユーザーとやり取りする際に使用する、ウィンドウ処理されたカードベースのインターフェースです。

カード メッセージのボタンクリックに応答する Chat アプリでのみサポートされます。アドオンに指定すると、カード全体が削除され、クライアントには何も表示されません。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

OpenAs

OnClick アクションによってリンクが開くと、クライアントはそのリンクをフルサイズのウィンドウ(クライアントが使用するフレームの場合)またはオーバーレイ(ポップアップなど)として開くことができます。実装はクライアント プラットフォームの機能によって異なります。クライアントがサポートしていない場合、選択した値が無視されることがあります。FULL_SIZE はすべてのクライアントでサポートされています。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

列挙型
FULL_SIZE フルサイズ ウィンドウとしてリンクが開きます(クライアントで使用されているフレームの場合)。
OVERLAY ポップアップなどのオーバーレイとしてリンクが開きます。

OnClose

OnClick アクションによって開かれたリンクが閉じられたときのクライアントの動作。

実装はクライアント プラットフォームの機能によって異なります。たとえば、ウェブブラウザが OnClose ハンドラでポップアップ ウィンドウでリンクを開く場合があります。

OnOpen ハンドラと OnClose ハンドラの両方が設定され、クライアント プラットフォームが両方の値をサポートできない場合は、OnClose が優先されます。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

列挙型
NOTHING デフォルト値。カードは再読み込みされず、何も起こりません。
RELOAD

子ウィンドウが閉じた後にカードを再読み込みします。

OpenAs.OVERLAY と併用すると、子ウィンドウはモーダル ダイアログとして機能し、子ウィンドウが閉じるまで親カードはブロックされます。

DecoratedText

テキストの上または下にラベル、テキストの前にアイコン、選択ウィジェット、テキストの後にボタンなど、オプションの装飾を付けてテキストを表示するウィジェット。Google Chat アプリの例については、装飾テキストを含むテキストを表示するをご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

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)

このアクションは、ユーザーが topLabel または bottomLabel をクリックするとトリガーされます。

共用体フィールド controldecoratedText ウィジェットのテキストの右側に表示されるボタン、スイッチ、チェックボックス、または画像。 control は次のいずれかになります。
button

object (Button)

ユーザーがクリックしてアクションをトリガーできるボタン。

switchControl

object (SwitchControl)

ユーザーがクリックして状態を変更し、アクションをトリガーできる switch ウィジェット。

endIcon

object (Icon)

テキストの後に表示されるアイコン。

組み込みアイコンとカスタム アイコンをサポートします。

アイコン

カード上のウィジェットに表示されるアイコン。Google Chat アプリの例については、アイコンを追加するをご覧ください。

組み込みアイコンとカスタム アイコンをサポートします。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

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.
}
フィールド
altText

string

省略可。ユーザー補助に使用されるアイコンの説明。指定しない場合は、デフォルト値の Button が指定されます。ベスト プラクティスとして、アイコンの表示内容と、アイコンの機能(該当する場合)に関するわかりやすい説明を設定することをおすすめします。たとえば、A user's account portrait や、Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/workspace/chat です。

アイコンが Button に設定されている場合、ユーザーがボタンにカーソルを合わせると、altText がヘルパー テキストとして表示されます。ただし、text も設定している場合、アイコンの altText は無視されます。

imageType

enum (ImageType)

画像に適用される切り抜きスタイル。CIRCLE 切り抜きを適用すると、画像が組み込みのアイコンよりも大きく表示される場合があります。

共用体フィールド icons。カード上のウィジェットに表示されるアイコン。icons は次のいずれかになります。
knownIcon

string

Google Workspace に組み込まれているアイコンのいずれかを表示します。

たとえば、飛行機アイコンを表示するには、AIRPLANE を指定します。バスの場合は、BUS を指定します。

サポートされているアイコンの完全なリストについては、組み込みアイコンをご覧ください。

iconUrl

string

HTTPS URL でホストされているカスタム アイコンを表示します。

次に例を示します。

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

サポートされているファイル形式は、.png.jpg です。

materialIcon

object (MaterialIcon)

Google マテリアル アイコンのいずれかを表示します。

たとえば、チェックボックス アイコンを表示するには、次のコマンドを使用します。

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

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

MaterialIcon

Google マテリアル アイコン。2, 500 以上のオプションが用意されています。

たとえば、カスタマイズされた体重と成績のチェックボックス アイコンを表示するには、次のように記述します。

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

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

JSON 表現
{
  "name": string,
  "fill": boolean,
  "weight": integer,
  "grade": integer
}
フィールド
name

string

Google マテリアル アイコンで定義されたアイコン名(例: check_box)。無効な名前は破棄されて空の文字列で置き換えられ、アイコンはレンダリングされなくなります。

fill

boolean

アイコンが塗りつぶされた状態でレンダリングされるかどうか。デフォルト値は false です。

さまざまなアイコン設定をプレビューするには、[Google Font Icons] に移動し、[Customize] で設定を調整します。

weight

integer

アイコンのストロークの太さ。{100、200、300、400、500、600、700} から選択できます。指定されていない場合、デフォルト値は 400 です。他の値が指定されている場合は、デフォルト値が使用されます。

さまざまなアイコン設定をプレビューするには、[Google Font Icons] に移動し、[Customize] で設定を調整します。

grade

integer

重量とグレードはシンボルの太さに影響します。グレードの調整は、太さの調整よりも細かい粒度で、記号のサイズへの影響は小さくなります。{-25, 0, 200} から選択できます。指定されていない場合、デフォルト値は 0 です。他の値が指定されている場合は、デフォルト値が使用されます。

さまざまなアイコン設定をプレビューするには、[Google Font Icons] に移動し、[Customize] で設定を調整します。

ボタン

ユーザーがクリックできるテキスト、アイコン、テキストとアイコンのボタン。Google Chat アプリの例については、ボタンを追加するをご覧ください。

画像をクリック可能なボタンにするには、ImageImageComponent ではない)を指定し、onClick アクションを設定します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

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/workspace/chat")」に移動します。

RGBA カラースペースのカラーを表します。この表現は、コンパクトさよりも、さまざまな言語の色表現との間の変換を簡単にするように設計されています。たとえば、この表現のフィールドは、Java では java.awt.Color のコンストラクタに簡単に指定できます。また、iOS では UIColor の +colorWithRed:green:blue:alpha メソッドにも簡単に指定できます。また、わずかな作業で、JavaScript で簡単に CSS rgba() 文字列にフォーマットできます。

このリファレンス ページには、RGB 値の解釈に使用する絶対色空間(sRGB、Adobe RGB、DCI-P3、BT.2020 など)に関する情報はありません。デフォルトでは、アプリケーションは sRGB 色空間を想定します。

色の等価性を判断する必要がある場合、実装では、特に記載のない限り、赤、緑、青、アルファの値の差が 1e-5 以下であれば、2 つの色を等しいものとして扱います。

例(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 は透明色に相当します。これは、単純な浮動小数点スカラーではなくラッパー メッセージを使用します。これにより、デフォルト値が設定されたのか未設定値だったのかを区別できます。省略した場合、このカラー オブジェクトは単色としてレンダリングされます(アルファ値に明示的に値 1.0 が指定されているかのように)。

SwitchControl

切り替えスタイルのスイッチ、または decoratedText ウィジェット内のチェックボックス。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

decoratedText ウィジェットでのみサポートされます。

JSON 表現
{
  "name": string,
  "value": string,
  "selected": boolean,
  "onChangeAction": {
    object (Action)
  },
  "controlType": enum (ControlType)
}
フィールド
name

string

フォーム入力イベントで switch ウィジェットを識別するための名前。

フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

value

string

ユーザーが入力した値。フォーム入力イベントの一部として返されます。

フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

selected

boolean

true の場合、スイッチが選択されます。

onChangeAction

object (Action)

スイッチの状態が変更されたときに実行するアクション(実行する関数など)。

controlType

enum (ControlType)

ユーザー インターフェースでのスイッチの表示

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

ControlType

ユーザー インターフェースでのスイッチの表示

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
SWITCH 切り替えスタイルのスイッチ。
CHECKBOX 非推奨になり、CHECK_BOX に置き換えられました。
CHECK_BOX チェックボックス。

ButtonList

横方向にレイアウトされたボタンのリスト。Google Chat アプリの例については、ボタンを追加するをご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "buttons": [
    {
      object (Button)
    }
  ]
}
フィールド
buttons[]

object (Button)

ボタンの配列。

TextInput

ユーザーがテキストを入力できるフィールド。提案と変更時のアクションをサポートします。Google Chat アプリの例については、ユーザーがテキストを入力できるフィールドを追加するをご覧ください。

チャットアプリは、フォーム入力イベント中に入力されたテキストの値を受信し、処理できます。フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

未定義のデータや抽象的なデータを収集する必要がある場合は、テキスト入力を使用します。定義済みデータまたは列挙データをユーザーから収集するには、SelectionInput ウィジェットを使用します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "name": string,
  "label": string,
  "hintText": string,
  "value": string,
  "type": enum (Type),
  "onChangeAction": {
    object (Action)
  },
  "initialSuggestions": {
    object (Suggestions)
  },
  "autoCompleteAction": {
    object (Action)
  },
  "placeholderText": string
}
フィールド
name

string

フォーム入力イベントでテキスト入力を識別する名前。

フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

label

string

ユーザー インターフェースのテキスト入力フィールドの上に表示されるテキスト。

ユーザーがアプリに必要な情報を入力するのに役立つテキストを指定します。たとえば、誰かの名前を尋ねているが、その人の姓が特に必要な場合は、name ではなく surname と記述します。

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 を提案することで、ユーザーによるアプリの操作方法を標準化できます。

指定すると、MULTIPLE_LINE に設定されていても、TextInput.type は常に SINGLE_LINE になります。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

autoCompleteAction

object (Action)

省略可。テキスト入力フィールドから操作を行ったユーザーに候補が表示された場合のアクションを指定します。

指定しない場合、提案は initialSuggestions によって設定され、クライアントによって処理されます。

指定すると、アプリは、カスタム関数の実行など、ここで指定されたアクションを実行します。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

placeholderText

string

テキスト入力フィールドが空のときに表示されるテキスト。このテキストを使用して、ユーザーに値の入力を促します。例: Enter a number from 0 to 100

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

タイプ

ユーザー インターフェースにおけるテキスト入力フィールドの表示。たとえば、単一行の入力フィールドか複数行の入力フィールドかなどです。initialSuggestions が指定されている場合、MULTIPLE_LINE に設定されていても、type は常に SINGLE_LINE になります。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
SINGLE_LINE テキスト入力フィールドの高さは 1 行に固定されています。
MULTIPLE_LINE テキスト入力フィールドの高さは複数行に固定されています。

RenderActions

カードにアクションの実行を指示する、またはアドオン ホストアプリまたは Chat アプリにアプリ固有のアクションを実行するよう指示する、一連のレンダリング手順。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

フィールド
action

Action

アクション

フィールド
navigations[]

Navigation

表示されたカードをプッシュまたは更新します。

新しいカードをスタックに追加する(次に進む)。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

navigations: {
  pushCard: CARD
}

一番上のカードを新しいカードに置き換えます。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

navigations: {
  updateCard: CARD
}

候補

ユーザーが入力できる推奨値。これらの値は、ユーザーがテキスト入力フィールドの中をクリックすると表示されます。ユーザーが入力を始めると、入力内容に合わせて推奨値が動的にフィルタされます。

たとえば、プログラミング言語のテキスト入力フィールドには、Java、JavaScript、Python、C++ の候補が表示されます。ユーザーが Jav の入力を開始すると、候補のリストが JavaJavaScript を表示するようにフィルタします。

推奨値は、ユーザーがアプリで理解できる値をユーザーが入力できるようにするのに役立ちます。JavaScript を指す場合、javascriptjava script を入力するユーザーが存在します。JavaScript を提案することで、ユーザーによるアプリの操作方法を標準化できます。

指定すると、MULTIPLE_LINE に設定されていても、TextInput.type は常に SINGLE_LINE になります。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "items": [
    {
      object (SuggestionItem)
    }
  ]
}
フィールド
items[]

object (SuggestionItem)

テキスト入力フィールドのオートコンプリートの推奨事項に使用される候補のリスト。

SuggestionItem

ユーザーがテキスト入力フィールドに入力できる推奨値の 1 つ。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

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

テキスト入力フィールドへの候補入力の値。これはユーザーが自分自身で入力する内容と同じです。

SelectionInput

ユーザーが選択できる 1 つ以上の UI アイテムを作成するウィジェット。たとえば、プルダウン メニューやチェックボックスなどです。このウィジェットを使用して、予測または列挙が可能なデータを収集できます。Google Chat アプリの例については、選択可能な UI 要素を追加するをご覧ください。

チャットアプリは、ユーザーが選択または入力したアイテムの価値を処理できます。フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

未定義のデータまたは抽象データをユーザーから収集するには、TextInput ウィジェットを使用します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "name": string,
  "label": string,
  "type": enum (SelectionType),
  "items": [
    {
      object (SelectionItem)
    }
  ],
  "onChangeAction": {
    object (Action)
  },
  "multiSelectMaxSelectedItems": integer,
  "multiSelectMinQueryLength": integer,

  // 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.
}
フィールド
name

string

フォーム入力イベントで選択入力を識別する名前。

フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

label

string

ユーザー インターフェースの選択入力フィールドの上に表示されるテキスト。

ユーザーがアプリに必要な情報を入力するのに役立つテキストを指定します。たとえば、ユーザーがプルダウン メニューからワークチケットの緊急度を選択する場合、ラベルは [緊急度] または [緊急性を選択] になります。

type

enum (SelectionType)

SelectionInput ウィジェットでユーザーに表示されるアイテムのタイプ。選択タイプは、さまざまな種類の操作をサポートしています。たとえば、ユーザーは 1 つ以上のチェックボックスをオンにできますが、プルダウン メニューから選択できる値は 1 つのみです。

items[]

object (SelectionItem)

選択可能なアイテムの配列。たとえば、ラジオボタンやチェックボックスの配列などです。最大 100 個のアイテムをサポートします。

onChangeAction

object (Action)

指定すると、選択が変更されたときにフォームが送信されます。指定しない場合は、フォームを送信する個別のボタンを指定する必要があります。

フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

multiSelectMaxSelectedItems

integer

複数選択メニューの場合、ユーザーが選択できるアイテムの最大数。最小値は 1 アイテムです。指定しない場合のデフォルトは 3 アイテムです。

multiSelectMinQueryLength

integer

複数選択メニューの場合、アプリクエリの前にユーザーが入力したテキスト文字数。オートコンプリートされて、メニューに候補項目が表示されます。

指定しない場合、静的データソースはデフォルトで 0 文字、外部データソースはデフォルトで 3 文字に設定されます。

共用体フィールド multi_select_data_source。複数選択メニューの場合、選択項目に入力されるデータソース。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。 multi_select_data_source は次のいずれかになります。

externalDataSource

object (Action)

リレーショナル データベースなどの外部データソース。

platformDataSource

object (PlatformDataSource)

Google Workspace のデータソース。

SelectionType

ユーザーが選択できるアイテムの形式。使用できる操作の種類は、オプションによって異なります。たとえば、ユーザーは複数のチェックボックスをオンにできるが、プルダウン メニューから選択できるアイテムは 1 つのみです。

各選択入力では、1 種類の選択がサポートされます。たとえば、チェックボックスとスイッチを組み合わせることはできません。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
CHECK_BOX チェックボックスのセット。ユーザーは 1 つ以上のチェックボックスを選択できます。
RADIO_BUTTON ラジオボタンのセット。ユーザーはラジオボタンを 1 つ選択できます。
SWITCH スイッチのセット。ユーザーは 1 つ以上のスイッチをオンにできます。
DROPDOWN プルダウン メニュー。ユーザーはメニューから 1 つのアイテムを選択できます。
MULTI_SELECT

静的データまたは動的データの複数選択メニュー。ユーザーはメニューバーから 1 つ以上のアイテムを選択します。ユーザーは、動的データに値を入力することもできます。たとえば、ユーザーが Google Chat スペースの名前の入力を開始すると、ウィジェットが自動的にスペースの候補を表示します。

複数選択メニューの項目にデータを入力するには、次のいずれかのタイプのデータソースを使用します。

  • 静的データ: アイテムはウィジェットで SelectionItem オブジェクトとして指定されます。最大 100 アイテム。
  • Google Workspace のデータ: アイテムは Google Workspace のユーザーや Google Chat スペースなどの Google Workspace のデータを使用して入力されます。
  • 外部データ: アイテムは Google Workspace の外部の外部データソースから入力されます。

複数選択メニューの実装方法の例については、複数選択メニューを追加するをご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。Google Workspace アドオンの複数選択はデベロッパー プレビュー版です。

SelectionItem

チェックボックスやスイッチなど、ユーザーが選択入力で選択できる項目。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "text": string,
  "value": string,
  "selected": boolean,
  "startIconUri": string,
  "bottomText": string
}
フィールド
text

string

ユーザーにアイテムを識別または説明するテキスト。

value

string

このアイテムに関連付けられた値。クライアントはこれをフォームの入力値として使用する必要があります。

フォーム入力の操作について詳しくは、フォームデータを受信するをご覧ください。

selected

boolean

デフォルトでアイテムが選択されるかどうか。選択入力で 1 つの値しか受け入れられない場合(ラジオボタンやプルダウン メニューなど)、このフィールドは 1 つのアイテムにのみ設定します。

startIconUri

string

複数選択メニューの場合、アイテムの text フィールドの横に表示されるアイコンの URL。PNG ファイルと JPEG ファイルを使用できます。HTTPS の URL を指定する必要があります。例: https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png

bottomText

string

複数選択メニューの場合、アイテムの text フィールドの下に表示されるテキストの説明またはラベル。

PlatformDataSource

複数選択メニューを使用する SelectionInput ウィジェットの場合、Google Workspace のデータソース。複数選択メニューの項目を入力するために使用します。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

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.
}
フィールド
共用体フィールド data_source。データソース。data_source は次のいずれかになります。
commonDataSource

enum (CommonDataSource)

Google Workspace 組織内のユーザーなど、すべての Google Workspace アプリケーションで共有されるデータソース。

hostAppDataSource

object (HostAppDataSourceMarkup)

Google Chat のスペースなど、Google Workspace ホスト アプリケーションに固有のデータソース。

CommonDataSource

すべての Google Workspace アプリケーションで共有されるデータソース。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

列挙型
UNKNOWN デフォルト値。使用しないでください。
USER Google Workspace ユーザー。Google Workspace 組織内のユーザーの表示と選択のみを行えます。

HostAppDataSourceMarkup

複数選択メニューを使用する SelectionInput ウィジェットの場合、Google Workspace アプリケーションからのデータソース。データソースにより、複数選択メニューの選択項目が入力されます。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

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.
}
フィールド
共用体フィールド data_source。複数選択メニューの項目を挿入する Google Workspace アプリケーション。 data_source は次のいずれかになります。
chatDataSource

object (ChatClientDataSourceMarkup)

Google Chat のデータソース。

ChatClientDataSourceMarkup

複数選択メニューを使用する SelectionInput ウィジェットの場合、Google Chat のデータソース。データソースにより、複数選択メニューの選択項目が入力されます。たとえば、ユーザーは自分がメンバーである Google Chat スペースを選択できます。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

JSON 表現
{

  // Union field source can be only one of the following:
  "spaceDataSource": {
    object (SpaceDataSource)
  }
  // End of list of possible types for union field source.
}
フィールド
共用体フィールド source。Google Chat のデータソース。source は次のいずれかになります。
spaceDataSource

object (SpaceDataSource)

ユーザーがメンバーになっている Google Chat スペース。

SpaceDataSource

複数選択メニューの選択項目として Google Chat スペースにデータを入力するデータソース。ユーザーがメンバーになっているスペースにのみユーザーが入力します。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

JSON 表現
{
  "defaultToCurrentSpace": boolean
}
フィールド
defaultToCurrentSpace

boolean

true に設定すると、複数選択メニューで、現在の Google Chat スペースがデフォルトでアイテムとして選択されます。

DateTimePicker

日付、時刻、またはその両方を入力できます。Google Chat アプリの例については、ユーザーが日時を選択できるようにするをご覧ください。

ユーザーはテキストを入力するか、選択ツールを使用して日付と時刻を選択できます。ユーザーが無効な日時を入力した場合、選択ツールにエラーが表示され、ユーザーに情報を正しく入力するよう促します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

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 エポック時間からのミリ秒数)。

選択ツールのタイプ(DateTimePickerType)に基づいて値を指定します。

  • DATE_AND_TIME: カレンダーの日時(UTC)。たとえば、2023 年 1 月 1 日午後 12 時(UTC)を表すには、1672574400000 を使用します。
  • DATE_ONLY: カレンダーの日付(00:00:00 UTC)。たとえば、2023 年 1 月 1 日を表すには、1672531200000 を使用します。
  • TIME_ONLY: UTC の時間。たとえば、午後 12 時を表すには、43200000(または 12 * 60 * 60 * 1000)を使用します。
timezoneOffsetDate

integer

UTC からのタイムゾーン オフセットを表す数値(分単位)。設定すると、valueMsEpoch は指定されたタイムゾーンで表示されます。設定しない場合、値はデフォルトでユーザーのタイムゾーン設定になります。

onChangeAction

object (Action)

ユーザーが DateTimePicker インターフェースから [保存] または [消去] をクリックするとトリガーされます。

DateTimePickerType

DateTimePicker ウィジェット内の日付と時刻の形式。ユーザーが日付、時刻、または日付と時刻の両方を入力できるようにするかどうかを指定します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
DATE_AND_TIME ユーザーが日時を入力します。
DATE_ONLY ユーザーが日付を入力します。
TIME_ONLY ユーザーが時刻を入力します。

分割線

このタイプにはフィールドがありません。

ウィジェット間の分割線を水平線で表示します。Google Chat アプリの例については、ウィジェット間に水平分割線を追加するをご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

たとえば、次の JSON は分割線を作成します。

"divider": {}

グリッド

アイテムのコレクションをグリッドに表示します。アイテムに含めることができるのは、テキストまたは画像のみです。レスポンシブ列の場合、またはテキストや画像以外の要素を含める場合は、Columns を使用します。Google Chat アプリの例については、アイテムのコレクションでグリッドを表示するをご覧ください。

グリッドは任意の数の列とアイテムをサポートします。行数は、項目を列数で割った値です。2 つの列に 10 個の項目があるグリッドには 5 行あります。11 個の項目と 2 列のグリッドには 6 行あります。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

たとえば、次の 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)

このコールバックは個々のグリッド アイテムで再利用されますが、アイテムリストのアイテムの識別子とインデックスがコールバックのパラメータに追加されます。

GridItem

グリッド レイアウトのアイテムを表します。アイテムには、テキスト、画像、またはテキストと画像の両方を含めることができます。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "id": string,
  "image": {
    object (ImageComponent)
  },
  "title": string,
  "subtitle": string,
  "layout": enum (GridItemLayout)
}
フィールド
id

string

このグリッド アイテムのユーザー指定の識別子。この識別子は、親グリッドの onClick コールバック パラメータで返されます。

image

object (ImageComponent)

グリッド アイテムに表示される画像。

title

string

グリッド アイテムのタイトル。

subtitle

string

グリッド アイテムのサブタイトル。

layout

enum (GridItemLayout)

グリッド アイテムに使用するレイアウト。

ImageComponent

画像を表します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "imageUri": string,
  "altText": string,
  "cropStyle": {
    object (ImageCropStyle)
  },
  "borderStyle": {
    object (BorderStyle)
  }
}
フィールド
imageUri

string

画像の URL。

altText

string

画像のユーザー補助ラベル。

cropStyle

object (ImageCropStyle)

画像に適用する切り抜きスタイル。

borderStyle

object (BorderStyle)

画像に適用する枠線のスタイル。

ImageCropStyle

画像に適用される切り抜きスタイルを表します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

たとえば、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

画像に適用される切り抜きスタイルを表します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
IMAGE_CROP_TYPE_UNSPECIFIED 使用しないでください。指定なし。
SQUARE デフォルト値。正方形に切り抜きを適用します。
CIRCLE 円形に切り抜きを適用します。
RECTANGLE_CUSTOM カスタム アスペクト比で長方形の切り抜きを適用します。aspectRatio を使用してカスタム アスペクト比を設定します。
RECTANGLE_4_3 アスペクト比 4:3 の長方形の切り抜きを適用します。

BorderStyle

カードまたはウィジェットの枠線のスタイル オプション(枠線の種類や色など)。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "type": enum (BorderType),
  "strokeColor": {
    object (Color)
  },
  "cornerRadius": integer
}
フィールド
type

enum (BorderType)

枠線の種類。

strokeColor

object (Color)

タイプが BORDER_TYPE_STROKE の場合に使用する色。

cornerRadius

integer

枠線の角の丸み。

BorderType

ウィジェットに適用される枠線の種類を表します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
BORDER_TYPE_UNSPECIFIED 使用しないでください。指定なし。
NO_BORDER デフォルト値。枠線なし。
STROKE Outline。

GridItemLayout

グリッド アイテムで利用可能なさまざまなレイアウト オプションを表します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
GRID_ITEM_LAYOUT_UNSPECIFIED 使用しないでください。指定なし。
TEXT_BELOW タイトルとサブタイトルは、グリッド アイテムの画像の下に表示されます。
TEXT_ABOVE タイトルとサブタイトルは、グリッド アイテムの画像の上に表示されます。

Columns ウィジェットは、カードまたはダイアログに最大 2 列を表示します。各列にウィジェットを追加できます。ウィジェットは指定された順序で表示されます。Google Chat アプリの例については、カードとダイアログを列に表示するをご覧ください。

各列の高さは、背の高い列によって決まります。たとえば、最初の列が 2 番目の列よりも高い場合、どちらの列も最初の列の高さになります。各列に含めることができるウィジェットの数は異なるため、行を定義したり、列間でウィジェットを配置したりすることはできません。

列は並べて表示されます。各列の幅は、HorizontalSizeStyle フィールドを使用してカスタマイズできます。ユーザーの画面幅が小さすぎる場合、2 番目の列は 1 番目の列より下に折り返されます。

  • ウェブでは、画面幅が 480 ピクセル以下の場合、2 列目が折り返されます。
  • iOS デバイスでは、画面幅が 300 pt 以下の場合、2 列目が折り返されます。
  • Android デバイスでは、画面幅が 320 dp 以下の場合、2 列目が折り返されます。

3 つ以上の列を含める場合、または行を使用する場合は、Grid ウィジェットを使用します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。Google Workspace アドオンの列はデベロッパー プレビュー版です。

JSON 表現
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
フィールド
columnItems[]

object (Column)

列の配列。カードまたはダイアログには最大 2 列を含めることができます。

Column

列。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。Google Workspace アドオンの列はデベロッパー プレビュー版です。

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 と、列内のウィジェットの幅の両方に依存します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。Google Workspace アドオンの列はデベロッパー プレビュー版です。

列挙型
HORIZONTAL_SIZE_STYLE_UNSPECIFIED 使用しないでください。指定なし。
FILL_AVAILABLE_SPACE デフォルト値。列は利用可能なスペース(カードの幅の 70% まで)全体に表示されます。両方の列が FILL_AVAILABLE_SPACE に設定されている場合、各列がスペースの 50% を占めます。
FILL_MINIMUM_SPACE 列が占めるスペースは最小であり、カードの幅の 30% 以下である。

HorizontalAlignment

ウィジェットを列の左、右、中央に揃えるかどうかを指定します。

Google Chat アプリで利用できますが、Google Workspace アドオンでは利用できません。

列挙型
HORIZONTAL_ALIGNMENT_UNSPECIFIED 使用しないでください。指定なし。
START デフォルト値。列の開始位置に合わせてウィジェットを調整します。左から右のレイアウトの場合は、左に揃えます。右から左へのレイアウトの場合は、右に揃えます。
CENTER ウィジェットを列の中央に揃えます。
END 列の最終位置に合わせてウィジェットを調整します。左から右のレイアウトの場合、ウィジェットを右に揃えます。右から左へのレイアウトの場合は、ウィジェットを左に揃えます。

VerticalAlignment

ウィジェットを列の上部、下部、中央に配置するかどうかを指定します。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。Google Workspace アドオンの列はデベロッパー プレビュー版です。

列挙型
VERTICAL_ALIGNMENT_UNSPECIFIED 使用しないでください。指定なし。
CENTER デフォルト値。ウィジェットを列の中央に揃えます。
TOP ウィジェットを列の上部に配置します。
BOTTOM ウィジェットを列の下部に位置揃えします。

ウィジェット

列に含めることができるサポートされているウィジェット。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。Google Workspace アドオンの列はデベロッパー プレビュー版です。

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 ウィジェット。

DividerStyle

カードの分割線スタイル。現時点では、カード セクション間の分割線にのみ使用されます。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

列挙型
DIVIDER_STYLE_UNSPECIFIED 使用しないでください。指定なし。
SOLID_DIVIDER デフォルトのオプション。セクション間の単色の分割線をレンダリングします。
NO_DIVIDER 設定した場合、セクション間の分割線はレンダリングされません。

CardAction

カード アクションとは、カードに関連付けられているアクションのことです。たとえば、請求書カードには、請求書を削除する、請求書をメールで送信する、ブラウザで請求書を開くなどのアクションを含めることができます。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

JSON 表現
{
  "actionLabel": string,
  "onClick": {
    object (OnClick)
  }
}
フィールド
actionLabel

string

アクション メニュー項目として表示されるラベル。

onClick

object (OnClick)

このアクション アイテムの onClick アクション。

CardFixedFooter

カードの下部に表示される永続的な(固定の)フッター。

primaryButton または secondaryButton を指定せずに fixedFooter を設定すると、エラーが発生します。

Chat アプリでは、ダイアログに固定フッターは使用できますが、カード メッセージでは使用できません。Google Chat アプリの例については、永続的なフッターを追加するをご覧ください。

Google Chat アプリと Google Workspace アドオンでご利用いただけます。

JSON 表現
{
  "primaryButton": {
    object (Button)
  },
  "secondaryButton": {
    object (Button)
  }
}
フィールド
primaryButton

object (Button)

固定フッターのメインボタン。ボタンは、テキストと色を設定したテキストボタンにする必要があります。

secondaryButton

object (Button)

固定フッターのセカンダリ ボタン。ボタンは、テキストと色を設定したテキストボタンにする必要があります。secondaryButton が設定されている場合は、primaryButton も設定する必要があります。

DisplayStyle

Google Workspace アドオンでのカードの表示方法を決定します。

Google Workspace アドオンでご利用いただけますが、Google Chat アプリではご利用いただけません。

列挙型
DISPLAY_STYLE_UNSPECIFIED 使用しないでください。指定なし。
PEEK カードのヘッダーはサイドバーの下部に表示され、スタックの現在の一番上のカードの一部の上に重ねて表示されます。ヘッダーをクリックすると、カードがカードスタックにポップされます。カードにヘッダーがない場合は、生成されたヘッダーが代わりに使用されます。
REPLACE デフォルト値。カードスタック内の一番上のカードのビューを置き換えることで、カードが表示されます。