Cards v2

Карточка

Интерфейс карты, отображаемый в сообщении Google Chat или дополнении Google Workspace.

Карточки поддерживают определенную компоновку, интерактивные элементы пользовательского интерфейса, такие как кнопки, и богатые медиа, такие как изображения. Используйте карточки для представления подробной информации, сбора информации от пользователей и направления пользователей к следующему шагу.

Создавайте и просматривайте открытки с помощью Card Builder.

Откройте конструктор карт

Чтобы узнать, как создавать карты, ознакомьтесь со следующей документацией:

Примечание: Вы можете добавить до 100 виджетов на карточку. Любые виджеты сверх этого лимита игнорируются. Этот лимит применяется как к сообщениям карточек и диалогам в приложениях Google Chat, так и к карточкам в дополнениях Google Workspace.

Пример: сообщение в карточке для приложения 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

Название карты. Используется как идентификатор карты в навигации по карте.

Доступно для дополнений Google Workspace и недоступно для приложений Google Chat.

displayStyle

enum ( DisplayStyle )

В надстройках Google Workspace задает свойства отображения peekCardHeader .

Доступно для дополнений Google Workspace и недоступно для приложений Google Chat.

peekCardHeader

object ( CardHeader )

При отображении контекстного контента заголовок всплывающей карточки действует как заполнитель, позволяя пользователю перемещаться вперед между карточками домашней страницы и контекстными карточками.

Доступно для дополнений Google Workspace и недоступно для приложений Google Chat.

Заголовок карты

Представляет заголовок карточки. Пример в приложениях Google Chat см. в разделе Добавить заголовок .

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "title": string,
  "subtitle": string,
  "imageType": enum (ImageType),
  "imageUrl": string,
  "imageAltText": string
}
Поля
title

string

Обязательно. Название заголовка карточки. Заголовок имеет фиксированную высоту: если указаны и заголовок, и подзаголовок, каждый занимает одну строку. Если указан только заголовок, он занимает обе строки.

subtitle

string

Подзаголовок заголовка карточки. Если указано, отображается на отдельной строке под title .

imageType

enum ( ImageType )

Форма, используемая для обрезки изображения.

Доступно для приложений Google Chat и дополнений Google Workspace.

imageUrl

string

HTTPS URL изображения в заголовке карточки.

imageAltText

string

Альтернативный текст этого изображения, используемый для обеспечения доступности.

Тип изображения

Форма, используемая для обрезки изображения.

Доступно для приложений Google Chat и дополнений Google Workspace.

Перечисления
SQUARE Значение по умолчанию. Применяет квадратную маску к изображению. Например, изображение 4x3 становится 3x3.
CIRCLE Применяет круговую маску к изображению. Например, изображение 4x3 становится кругом диаметром 3.

Раздел

Раздел содержит коллекцию виджетов, которые отображаются вертикально в том порядке, в котором они указаны.

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "header": string,
  "widgets": [
    {
      object (Widget)
    }
  ],
  "collapsible": boolean,
  "uncollapsibleWidgetsCount": integer,
  "collapseControl": {
    object (CollapseControl)
  }
}
Поля
header

string

Текст, который отображается в верхней части раздела. Поддерживает простой текст в формате HTML. Для получения дополнительной информации о форматировании текста см. Форматирование текста в приложениях Google Chat и Форматирование текста в дополнениях Google Workspace .

widgets[]

object ( Widget )

Все виджеты в разделе. Должен содержать хотя бы один виджет.

collapsible

boolean

Указывает, является ли этот раздел сворачиваемым.

Сворачиваемые разделы скрывают некоторые или все виджеты, но пользователи могут развернуть раздел, чтобы отобразить скрытые виджеты, нажав Показать больше . Пользователи могут снова скрыть виджеты, нажав Показать меньше .

Чтобы определить, какие виджеты скрыты, укажите uncollapsibleWidgetsCount .

uncollapsibleWidgetsCount

integer

Количество несворачиваемых виджетов, которые остаются видимыми даже при свернутом разделе.

Например, если раздел содержит пять виджетов, а uncollapsibleWidgetsCount установлен на 2 , первые два виджета всегда отображаются, а последние три свернуты по умолчанию. uncollapsibleWidgetsCount учитывается только тогда, когда collapsible равен true .

collapseControl

object ( CollapseControl )

Необязательно. Определите кнопку разворачивания и сворачивания раздела. Эта кнопка будет отображаться только в том случае, если раздел сворачиваемый. Если это поле не задано, используется кнопка по умолчанию.

Виджет

Каждая карточка состоит из виджетов.

Виджет - это композитный объект, который может представлять один из текста, изображений, кнопок и других типов объектов.

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)
  },
  "carousel": {
    object (Carousel)
  },
  "chipList": {
    object (ChipList)
  }
  // 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 создает две кнопки. Первая — синяя текстовая кнопка, а вторая — кнопка-изображение, которая открывает ссылку:

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

object ( TextInput )

Отображает текстовое поле, в которое пользователи могут вводить данные.

Например, следующий 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 строк.

Доступно для приложений Google Chat и дополнений Google Workspace.

Например, следующий JSON-код создает сетку из двух столбцов с одним элементом:

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

object ( Carousel )

Карусель содержит коллекцию вложенных виджетов. Например, это JSON-представление карусели, содержащей два текстовых абзаца.

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

object ( ChipList )

Список фишек.

Например, следующий JSON создает два чипа. Первый — текстовый чип, а второй — значок, открывающий ссылку:

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

ТекстовыйАбзац

Абзац текста, поддерживающий форматирование. Пример в приложениях Google Chat см. в разделе Добавление абзаца форматированного текста . Дополнительные сведения о форматировании текста см. в разделах Форматирование текста в приложениях Google Chat и Форматирование текста в дополнениях Google Workspace .

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "text": string,
  "maxLines": integer,
  "textSyntax": enum (TextSyntax)
}
Поля
text

string

Текст, отображаемый в виджете.

maxLines

integer

Максимальное количество строк текста, отображаемых в виджете. Если текст превышает указанное максимальное количество строк, излишний контент скрывается за кнопкой «Показать больше» . Если текст равен или короче указанного максимального количества строк, кнопка «Показать больше» не отображается.

Значение по умолчанию — 0, в этом случае отображается весь контекст. Отрицательные значения игнорируются.

textSyntax

enum ( TextSyntax )

Синтаксис текста. Если не задано, текст отображается как HTML.

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

ТекстСинтаксис

Синтаксис, используемый для форматирования текста.

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

Перечисления
TEXT_SYNTAX_UNSPECIFIED Если не указано иное, текст отображается как HTML.
HTML Текст отображается как HTML. Это значение по умолчанию.
MARKDOWN Текст отображается в формате Markdown.

Изображение

Изображение, указанное 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)
  },
  "overflowMenu": {
    object (OverflowMenu)
  }
  // End of list of possible types for union field data.
}
Поля

data полевых исследований Союза.

data могут быть только одними из следующих:

action

object ( Action )

Если указано, действие запускается этим onClick .

card

object ( Card )

Если указано, после щелчка в стопку карт помещается новая карта.

Доступно для дополнений Google Workspace и недоступно для приложений Google Chat.

overflowMenu

object ( OverflowMenu )

Если указано, этот onClick открывает дополнительное меню.

Действие

Действие, описывающее поведение при отправке формы. Например, вы можете вызвать скрипт Apps Script для обработки формы. Если действие срабатывает, значения формы отправляются на сервер.

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction),
  "requiredWidgets": [
    string
  ],
  "allWidgetsAreRequired": boolean
}
Поля
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 , приложение может открыть диалог . Если указано, индикатор загрузки не отображается. Если указано для дополнения, вся карточка удаляется и в клиенте ничего не отображается.

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

requiredWidgets[]

string

Необязательно. Заполните этот список именами виджетов, которые требуются этому действию для допустимой отправки.

Если перечисленные здесь виджеты не имеют значения при вызове этого действия, отправка формы прерывается.

Доступно для приложений Google Chat и дополнений Google Workspace.

allWidgetsAreRequired

boolean

Необязательно. Если это правда, то все виджеты считаются обязательными для этого действия.

Доступно для приложений Google Chat и дополнений Google Workspace.

ПараметрДействия

Список строковых параметров для предоставления при вызове метода действия. Например, рассмотрим три кнопки повтора: повтор сейчас, повтор на один день или повтор на следующей неделе. Вы можете использовать action method = snooze() , передавая тип повтора и время повтора в списке строковых параметров.

Более подробную информацию см. в разделе CommonEventObject .

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "key": string,
  "value": string
}
Поля
key

string

Имя параметра для сценария действия.

value

string

Значение параметра.

Индикатор нагрузки

Указывает индикатор загрузки, который действие отображает при вызове действия.

Доступно для приложений Google Chat и дополнений Google Workspace.

Перечисления
SPINNER Отображает индикатор загрузки контента.
NONE Ничего не отображается.

Взаимодействие

Необязательно. Требуется при открытии диалога .

Что делать в ответ на взаимодействие с пользователем, например, когда пользователь нажимает кнопку в сообщении карты.

Если параметр не указан, приложение реагирует, выполняя action (например, открытие ссылки или запуск функции) как обычно.

Указывая interaction , приложение может реагировать особыми интерактивными способами. Например, установив interaction на OPEN_DIALOG , приложение может открыть диалог .

Если указано, индикатор загрузки не отображается. Если указано для дополнения, вся карта удаляется и в клиенте ничего не отображается.

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

Перечисления
INTERACTION_UNSPECIFIED Значение по умолчанию. action выполняется как обычно.
OPEN_DIALOG

Открывает диалоговое окно — оконный карточный интерфейс, который приложения чата используют для взаимодействия с пользователями.

Поддерживается только приложениями чата в ответ на нажатия кнопок в сообщениях карт. Если указано для дополнения, вся карта удаляется и в клиенте ничего не отображается.

Доступно для приложений 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 дочернее окно действует как модальный диалог, а родительская карточка блокируется до тех пор, пока дочернее окно не закроется.

ПереполнениеМеню

Виджет, представляющий всплывающее меню с одним или несколькими действиями, которые могут вызывать пользователи. Например, отображение неосновных действий на карточке. Вы можете использовать этот виджет, когда действия не помещаются в доступное пространство. Чтобы использовать, укажите этот виджет в действии OnClick виджетов, которые его поддерживают. Например, в Button .

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "items": [
    {
      object (OverflowMenuItem)
    }
  ]
}
Поля
items[]

object ( OverflowMenuItem )

Обязательно. Список пунктов меню.

OverflowMenuItem

Опция, которую пользователи могут вызвать в дополнительном меню.

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "startIcon": {
    object (Icon)
  },
  "text": string,
  "onClick": {
    object (OnClick)
  },
  "disabled": boolean
}
Поля
startIcon

object ( Icon )

Значок, отображаемый перед текстом.

text

string

Обязательно. Текст, который идентифицирует или описывает элемент для пользователей.

onClick

object ( OnClick )

Обязательно. Действие, вызываемое при выборе пункта меню. Этот OnClick не может содержать OverflowMenu , любой указанный OverflowMenu удаляется, а пункт меню отключается.

disabled

boolean

Отключена ли опция меню. По умолчанию false.

Икона

Значок, отображаемый в виджете на карточке. Пример в приложениях 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

Отображение пользовательского значка, размещенного по URL-адресу HTTPS.

Например:

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

Поддерживаемые типы файлов включают .png и .jpg .

materialIcon

object ( MaterialIcon )

Отобразите одну из иконок Google Material .

Например, чтобы отобразить значок флажка , используйте

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

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

МатериалИконка

Значок Google Material , включающий более 2500+ вариантов.

Например, чтобы отобразить значок флажка с настраиваемым весом и классом, напишите следующее:

{
  "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 Material Icon , например, check_box . Любые недействительные имена отбрасываются и заменяются пустой строкой, что приводит к тому, что значок не отображается.

fill

boolean

Будет ли значок отображаться как заполненный. Значение по умолчанию — false.

Чтобы просмотреть различные настройки значков, перейдите в раздел «Значки шрифтов Google» и измените настройки в разделе «Настроить» .

weight

integer

Толщина штриха значка. Выберите из {100, 200, 300, 400, 500, 600, 700}. Если отсутствует, значение по умолчанию — 400. Если указано любое другое значение, используется значение по умолчанию.

Чтобы просмотреть различные настройки значков, перейдите в раздел «Значки шрифтов Google» и измените настройки в разделе «Настроить» .

grade

integer

Вес и сорт влияют на толщину символа. Корректировки сорта более детальны, чем корректировки веса, и оказывают небольшое влияние на размер символа. Выберите из {-25, 0, 200}. Если отсутствует, значение по умолчанию равно 0. Если указано любое другое значение, используется значение по умолчанию.

Чтобы просмотреть различные настройки значков, перейдите в раздел «Значки шрифтов Google» и измените настройки в разделе «Настроить» .

DecoratedText

Виджет, который отображает текст с дополнительными украшениями, такими как метка над или под текстом, значок перед текстом, виджет выбора или кнопка после текста. Пример в приложениях Google Chat см. в разделе Отображение текста с декоративным текстом .

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "icon": {
    object (Icon)
  },
  "startIcon": {
    object (Icon)
  },
  "startIconVerticalAlignment": enum (VerticalAlignment),
  "topLabel": string,
  "topLabelText": {
    object (TextParagraph)
  },
  "text": string,
  "contentText": {
    object (TextParagraph)
  },
  "wrapText": boolean,
  "bottomLabel": string,
  "bottomLabelText": {
    object (TextParagraph)
  },
  "onClick": {
    object (OnClick)
  },

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

Значок, отображаемый перед текстом.

startIconVerticalAlignment

enum ( VerticalAlignment )

Необязательно. Вертикальное выравнивание значка запуска. Если не задано, значок будет вертикально центрирован.

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

topLabel

string

Текст, который отображается над text . Всегда обрезается.

topLabelText

object ( TextParagraph )

TextParagraph эквивалент topLabel . Всегда обрезает. Позволяет использовать более сложное форматирование, чем topLabel .

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

text

string

Обязательно. Основной текст.

Поддерживает простое форматирование. Для получения дополнительной информации о форматировании текста см. Форматирование текста в приложениях Google Chat и Форматирование текста в дополнениях Google Workspace .

contentText

object ( TextParagraph )

TextParagraph эквивалент text . Позволяет использовать более сложное форматирование, чем text .

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

wrapText

boolean

Настройка переноса текста. Если true , текст переносится и отображается на нескольких строках. В противном случае текст обрезается.

Применимо только к text , но не к topLabel и bottomLabel .

bottomLabel

string

Текст, который отображается под text . Всегда переносится.

bottomLabelText

object ( TextParagraph )

TextParagraph эквивалент bottomLabel . Всегда переносит. Позволяет использовать более сложное форматирование, чем bottomLabel .

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

onClick

object ( OnClick )

Это действие запускается, когда пользователи нажимают topLabel или bottomLabel .

control полем объединения. Кнопка, переключатель, флажок или изображение, которые отображаются справа от текста в виджете decoratedText . control может быть только одним из следующих:
button

object ( Button )

Кнопка, нажав которую пользователь может запустить действие.

switchControl

object ( SwitchControl )

Виджет-переключатель, на который пользователь может нажать, чтобы изменить его состояние и запустить действие.

endIcon

object ( Icon )

Значок, отображаемый после текста.

Поддерживает встроенные и пользовательские значки.

ВертикальноеВыравнивание

Представляет атрибут вертикального выравнивания.

Перечисления
VERTICAL_ALIGNMENT_UNSPECIFIED Неуказанный тип. Не использовать.
TOP Выравнивание по верхнему положению.
MIDDLE Выравнивание по среднему положению.
BOTTOM Выравнивание по нижнему положению.

Кнопка

Текст, значок или кнопка с текстом и значком, которые могут нажимать пользователи. Пример в приложениях Google Chat см. в разделе Добавить кнопку .

Чтобы сделать изображение кнопкой, на которую можно нажать, укажите Image (не ImageComponent ) и задайте действие onClick .

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "text": string,
  "icon": {
    object (Icon)
  },
  "color": {
    object (Color)
  },
  "onClick": {
    object (OnClick)
  },
  "disabled": boolean,
  "altText": string,
  "type": enum (Type)
}
Поля
text

string

Текст, отображаемый внутри кнопки.

icon

object ( Icon )

Значок, отображаемый внутри кнопки. Если заданы и icon , и text , то значок отображается перед текстом.

color

object ( Color )

Необязательно. Цвет кнопки. Если установлено, type кнопки устанавливается как FILLED , а цвет полей text и icon устанавливается на контрастный цвет для удобства чтения. Например, если цвет кнопки установлен на синий, любой текст или значки на кнопке устанавливаются на белый цвет.

Чтобы задать цвет кнопки, укажите значение для полей red , green и blue . Значение должно быть числом с плавающей точкой от 0 до 1 на основе значения цвета RGB, где 0 (0/255) представляет отсутствие цвета, а 1 (255/255) представляет максимальную интенсивность цвета.

Например, следующий код устанавливает красный цвет с максимальной интенсивностью:

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

Поле alpha недоступно для цвета кнопки. Если указано, это поле игнорируется.

onClick

object ( OnClick )

Обязательно. Действие, которое необходимо выполнить, когда пользователь нажимает кнопку, например, открытие гиперссылки или запуск пользовательской функции.

disabled

boolean

Если true , кнопка отображается в неактивном состоянии и не реагирует на действия пользователя.

altText

string

Альтернативный текст, используемый для обеспечения доступности.

Установите описательный текст, который позволит пользователям узнать, что делает кнопка. Например, если кнопка открывает гиперссылку, вы можете написать: «Открывает новую вкладку браузера и переходит к документации разработчика Google Chat по адресу https://developers.google.com/workspace/chat» .

type

enum ( Type )

Необязательно. Тип кнопки. Если не задано, тип кнопки по умолчанию OUTLINED . Если задано поле color , тип кнопки принудительно устанавливается на FILLED , а любое заданное для этого поля значение игнорируется.

Цвет

Представляет цвет в цветовом пространстве RGBA. Это представление разработано для простоты преобразования в и из цветовых представлений в различных языках в пользу компактности. Например, поля этого представления могут быть тривиально предоставлены конструктору java.awt.Color в Java; его также можно тривиально предоставить методу +colorWithRed:green:blue:alpha UIColor в iOS; и, приложив немного усилий, его можно легко отформатировать в строку CSS rgba() в JavaScript.

На этой странице справки нет информации об абсолютном цветовом пространстве, которое следует использовать для интерпретации значения RGB, например, sRGB, Adobe RGB, DCI-P3 и BT.2020. По умолчанию приложения должны предполагать цветовое пространство sRGB.

Когда необходимо определить равенство цветов, реализации, если иное не указано в документации, считают два цвета равными, если все их значения красного, зеленого, синего и альфа отличаются не более чем на 1e-5 .

Пример (Ява):

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

Тип

Необязательно. Тип кнопки. Если задано поле color , type принудительно устанавливается на FILLED .

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

Перечисления
TYPE_UNSPECIFIED Не использовать. Не указано.
OUTLINED Выделенные кнопки — кнопки средней важности. Обычно они содержат действия, которые важны, но не являются основными в приложении Chat или дополнении.
FILLED Заполненная кнопка имеет контейнер со сплошным цветом. Она имеет наибольшее визуальное воздействие и рекомендуется для важного и основного действия в приложении чата или дополнении.
FILLED_TONAL Заполненная тональная кнопка — это альтернативный средний вариант между заполненными и контурными кнопками. Они полезны в контекстах, где кнопка с более низким приоритетом требует немного большего акцента, чем дала бы контурная кнопка.
BORDERLESS Кнопка не имеет невидимого контейнера в состоянии по умолчанию. Она часто используется для действий с самым низким приоритетом, особенно при представлении нескольких вариантов.

SwitchControl

Либо переключатель в виде тумблера, либо флажок внутри виджета decoratedText .

Доступно для приложений Google Chat и дополнений Google Workspace.

Поддерживается только в виджете 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 )

Как переключатель выглядит в пользовательском интерфейсе.

Доступно для приложений Google Chat и дополнений Google Workspace.

Тип управления

Как переключатель выглядит в пользовательском интерфейсе.

Доступно для приложений Google Chat и дополнений Google Workspace.

Перечисления
SWITCH Переключатель тумблерного типа.
CHECKBOX Устарело в пользу CHECK_BOX .
CHECK_BOX Флажок.

Список кнопок

Список кнопок, расположенных горизонтально. Пример в приложениях Google Chat см. в разделе Добавить кнопку .

Доступно для приложений Google Chat и дополнений Google Workspace.

JSON-представление
{
  "buttons": [
    {
      object (Button)
    }
  ]
}
Поля
buttons[]

object ( Button )

Массив кнопок.

Ввод текста

Поле, в которое пользователи могут вводить текст. Поддерживает предложения и действия при изменении. Поддерживает проверку отправки формы. Если Action.all_widgets_are_required установлен в true или этот виджет указан в Action.required_widgets , действие отправки блокируется, если не введено значение. Пример в приложениях 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)
  },
  "validation": {
    object (Validation)
  },
  "placeholderText": string
}
Поля
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 , список предложений фильтруется, чтобы показать только Java и JavaScript .

Предлагаемые значения помогают пользователям вводить значения, которые ваше приложение может понять. При обращении к JavaScript некоторые пользователи могут ввести javascript , а другие java script . Предложение JavaScript может стандартизировать взаимодействие пользователей с вашим приложением.

Если указан TextInput.type , то всегда будет SINGLE_LINE , даже если он установлен на MULTIPLE_LINE .

Доступно для приложений Google Chat и дополнений Google Workspace.

autoCompleteAction

object ( Action )

Необязательно. Укажите, какое действие следует предпринять, когда поле ввода текста предлагает подсказки пользователям, которые взаимодействуют с ним.

Если не указано иное, предложения задаются initialSuggestions и обрабатываются клиентом.

Если указано, приложение выполняет указанное здесь действие, например, запускает пользовательскую функцию.

Доступно для дополнений Google Workspace и недоступно для приложений Google Chat.

validation

object ( Validation )

Укажите проверку формата ввода, необходимую для этого текстового поля.

Доступно для приложений Google Chat и дополнений Google Workspace.

placeholderText

string

Текст, который отображается в поле ввода текста, когда поле пустое. Используйте этот текст, чтобы предложить пользователям ввести значение. Например, Enter a number from 0 to 100 .

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace.

Тип

Как поле ввода текста отображается в пользовательском интерфейсе. Например, является ли это полем ввода с одной строкой или многострочным вводом. Если указано initialSuggestions , type всегда SINGLE_LINE , даже если он установлен на MULTIPLE_LINE .

Доступно для приложений Google Chat и дополнений Google Workspace.

Перечисления
SINGLE_LINE Поле ввода текста имеет фиксированную высоту в одну строку.
MULTIPLE_LINE Поле ввода текста имеет фиксированную высоту в несколько строк.

РендерДействия

Набор инструкций по рендерингу, который сообщает карте для выполнения действия или сообщает приложению Add-Host или приложению Chat для выполнения специфического приложения действий.

Доступно для приложений Google Chat и надстройки Google Workspace.

Поля
action

Action

Действие

Поля
navigations[]

Navigation

Толкает, всплывает или обновляет карту.

Предварительный просмотр разработчика : надстройки в чате Google .

Добавьте новую карту в стек (перейдите вперед). Для приложений для чата доступно только для приложения Home .

Доступно для приложений Google Chat и надстройки Google Workspace.

navigations: {
  pushCard: CARD
}

Замените верхнюю карту новой картой. Для приложений для чата доступно только для приложения Home .

Доступно для приложений Google Chat и надстройки Google Workspace.

navigations: {
  updateCard: CARD
}

Предложения

Предлагаемые значения, в которые пользователи могут ввести. Эти значения появляются, когда пользователи нажимают внутри поля ввода текста. Как вводит пользователи, предлагаемые значения динамически фильтровали, чтобы соответствовать тому, что напечатали пользователи.

Например, поле ввода текста для языка программирования может предложить Java, JavaScript, Python и C ++. Когда пользователи начнут печатать Jav , список предложений фильтровал, чтобы показать Java и JavaScript .

Предлагаемые значения помогают пользователям вводить значения, которые может понять ваше приложение. При ссылке на JavaScript некоторые пользователи могут ввести javascript , а другие java script . Предложение JavaScript может стандартизировать, как пользователи взаимодействуют с вашим приложением.

Когда указано, TextInput.type всегда SINGLE_LINE , даже если он устанавливается на MULTIPLE_LINE .

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "items": [
    {
      object (SuggestionItem)
    }
  ]
}
Поля
items[]

object ( SuggestionItem )

Список предложений, используемых для рекомендаций автозаполнения в полях ввода текста.

Предложение

Одно предложенное значение, которое пользователи могут ввести в поле текстового ввода.

Доступно для приложений 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

Значение предлагаемого ввода в поле ввода текста. Это эквивалентно тому, что пользователи вводят себя.

Проверка

Представляет необходимые данные для проверки виджета, к которому он прикреплен.

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "characterLimit": integer,
  "inputType": enum (InputType)
}
Поля
characterLimit

integer

Укажите ограничение символа для виджетов ввода текста. Обратите внимание, что это используется только для ввода текста и игнорируется для других виджетов.

Доступно для приложений Google Chat и надстройки Google Workspace.

inputType

enum ( InputType )

Укажите тип входных виджетов.

Доступно для приложений Google Chat и надстройки Google Workspace.

Тип ввода

Тип входного виджета.

Перечисления
INPUT_TYPE_UNSPECIFIED Неопределенный тип. Не используйте.
TEXT Регулярный текст, который принимает всех символов.
INTEGER Целочисленное значение.
FLOAT Значение поплавки.
EMAIL Адрес электронной почты.
EMOJI_PICKER Эмодзи, отобранный из предоставленного системой сборщика смайликов.

SelectionInput

Виджет, который создает один или несколько элементов пользовательского интерфейса, которые могут выбрать пользователи. Поддерживает проверку подачи формы только для dropdown и multiselect меню. Когда Action.all_widgets_are_required устанавливается на true или этот виджет указан в Action.required_widgets , действие подачи блокировки, если не выбрано значение. Например, выпадающее меню или флажки. Вы можете использовать этот виджет для сбора данных, которые могут быть предсказаны или перечислены. Для примера в приложениях Google Chat см. «Добавить выбранные элементы пользовательского интерфейса» .

Приложения чата могут обрабатывать значение элементов, которые пользователи выбирают или вводятся. Для получения подробной информации о работе с входами формы см. Данные формы приема .

Чтобы собрать неопределенные или абстрактные данные от пользователей, используйте виджет 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 . Типы выбора поддерживают различные типы взаимодействий. Например, пользователи могут выбрать один или несколько флажков, но они могут выбрать только одно значение в раскрывающемся меню.

items[]

object ( SelectionItem )

Массив выбранных элементов. Например, массив радиопроизводств или флажок. Поддерживает до 100 предметов.

onChangeAction

object ( Action )

Если указано, форма отправляется при изменении выбора. Если не указано, вы должны указать отдельную кнопку, которая подчиняет форму.

Для получения подробной информации о работе с входами формы см. Данные формы приема .

multiSelectMaxSelectedItems

integer

Для MultiSelect Menus максимальное количество элементов, которые пользователь может выбрать. Минимальное значение - 1 элемент. Если не указано, по умолчанию 3 пункта.

multiSelectMinQueryLength

integer

Для MultiSelect Menus количество текстовых символов, которые пользователь вводит до того, как меню возвращает предлагаемые элементы выбора.

Если вы не вытекают, в меню MultiSelect используется следующие значения по умолчанию:

  • Если в меню используется статический массив элементов SelectionInput , по умолчанию до 0 символов и немедленно заполняет элементы из массива.
  • Если в меню используется динамический источник данных ( multi_select_data_source ), по умолчанию до 3 символов перед запросом источника данных для возврата предлагаемых элементов.

Поле Союза multi_select_data_source . Для многосекционного меню источник данных, который динамически населяет элементы выбора.

Доступно для приложений Google Chat и недоступно для надстройки Google Workspace. multi_select_data_source может быть только одним из следующих:

externalDataSource

object ( Action )

Внешний источник данных, такой как реляционная база данных.

platformDataSource

object ( PlatformDataSource )

Источник данных из Google Workspace.

ВыборТип

Формат для элементов, которые пользователи могут выбрать. Различные параметры поддерживают различные типы взаимодействий. Например, пользователи могут выбрать несколько флажков, но могут выбрать только один элемент из раскрывающегося меню.

Каждый ввод выбора поддерживает один тип выбора. Например, смешивание флажок и коммутаторов не поддерживается.

Доступно для приложений Google Chat и надстройки Google Workspace.

Перечисления
CHECK_BOX Набор флажок. Пользователи могут выбрать один или несколько флажков.
RADIO_BUTTON Набор радиопроизводств. Пользователи могут выбрать одну радиопроизводительную кнопку.
SWITCH Набор переключателей. Пользователи могут включать один или несколько коммутаторов.
DROPDOWN Выпадающее меню. Пользователи могут выбрать один элемент из меню.
MULTI_SELECT

Меню с текстовым поле. Пользователи могут вводить и выбрать один или несколько элементов. Для надстройки Google Workspace вы должны заполнять элементы, используя статический массив объектов SelectionItem .

Для приложений Google Chat вы также можете заполнять элементы, используя динамический источник данных и Autosuggestement, как пользователи вводят в меню. Например, пользователи могут начать набирать имя пространства чата Google, а виджет автоматически использует пространство. Для динамического заполнения элементов для многосекционного меню используйте один из следующих типов источников данных:

  • Данные Google Workspace: элементы заполняются с использованием данных из Google Workspace, таких как пользователи Google Workspace или Google Chat Spaces.
  • Внешние данные: элементы заполняются из внешнего источника данных за пределами Google Workspace.

Примеры того, как реализовать MultiSelect Menus для приложений для чата, см. MultiSelect Menu .

Доступно для приложений Google Chat и надстройки Google Workspace.

SelectionItem

Элемент, который пользователи могут выбрать во входе выбора, например, флажок или коммутатор. Поддерживает до 100 предметов.

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "text": string,
  "value": string,
  "selected": boolean,
  "bottomText": string,

  // Union field start_icon can be only one of the following:
  "startIconUri": string
  // End of list of possible types for union field start_icon.
}
Поля
text

string

Текст, который идентифицирует или описывает элемент для пользователей.

value

string

Значение, связанное с этим элементом. Клиент должен использовать это в качестве входного значения формы.

Для получения подробной информации о работе с входами формы см. Данные формы приема .

selected

boolean

Будет ли элемент выбран по умолчанию. Если ввод выбора принимает только одно значение (например, для радиопроизводительных кнопок или раскрывающегося меню), установите это поле только для одного элемента.

bottomText

string

Для MultiSelect Menus текстовое описание или этикетку, отображаемое ниже text поля элемента.

Поля Союза start_icon . Для MultiSelect Menus URL -адрес для значка, отображаемого рядом с text полем элемента. Поддерживает файлы PNG и JPEG. Должен быть HTTPS URL. Например, https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png . start_icon может быть только одним из следующих:
startIconUri

string

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 Workspace Host, таких пространств в Google Chat.

Это поле поддерживает клиентские библиотеки Google API, но не доступно в библиотеках Cloud Client. Чтобы узнать больше, см. Установите клиентские библиотеки .

CommonDataSource

Источник данных, разделяемый всеми приложениями Google Workspace .

Доступно для приложений Google Chat и недоступно для надстройки Google Workspace.

Перечисления
UNKNOWN Значение по умолчанию. Не используйте.
USER Пользователи Google Workspace. Пользователь может просматривать и выбирать пользователей только из своей организации Google Workspace.

Hostappdatasourcemarkup

Для виджета SelectionInput , в котором используется многоселекное меню, источник данных из приложения Google Workspace. Источник данных населяет элементы выбора для меню MultiSelect.

Доступно для приложений 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. Источник данных населяет элементы выбора для меню MultiSelect. Например, пользователь может выбрать пространства чата Google, которые он является членом.

Доступно для приложений 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. source может быть только одним из следующих:
spaceDataSource

object ( SpaceDataSource )

Google Chat Spaces, которым является пользователь.

Распространенный

Источник данных, который заполняет пространства чата Google в качестве элементов выбора для многосекционного меню. Только популярно пространства, которые пользователь является членом.

Доступно для приложений Google Chat и недоступно для надстройки Google Workspace.

JSON-представление
{
  "defaultToCurrentSpace": boolean
}
Поля
defaultToCurrentSpace

boolean

Если установлено в true , меню MultiSelect выбирает текущее пространство чата Google в качестве элемента по умолчанию.

DateTimePicker

Позволяет пользователям вводить дату, время или как дату, так и время. Поддерживает проверку подчинения формы. Когда Action.all_widgets_are_required устанавливается на true или этот виджет указан в Action.required_widgets , действие подачи блокировки, если не выбрано значение. Для примера в приложениях Google Chat см. Позвольте пользователю выбрать дату и время .

Пользователи могут вводить текст или использовать сборщик для выбора дат и времени. Если пользователи вводят неверную дату или время, сборщик показывает ошибку, которая побуждает пользователей правильно вводить информацию.

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "name": string,
  "label": string,
  "type": enum (DateTimePickerType),
  "valueMsEpoch": int64,
  "timezoneOffsetDate": integer,
  "onChangeAction": {
    object (Action)
  }
}
Поля
name

string

Имя, с помощью которого DateTimePicker идентифицируется в событии ввода формы.

Для получения подробной информации о работе с входами формы см. Данные формы приема .

label

string

Текст, который побуждает пользователей вводить дату, время или дату и время. Например, если пользователи планируют встречу, используйте этикетку, такую как Appointment date или Appointment date and time .

type

enum ( DateTimePickerType )

Поддерживает ли виджет ввод даты, времени или даты и времени.

valueMsEpoch

int64

Значение по умолчанию отображается в виджете, в миллисекундах со времен Unix Epoch .

Укажите значение, основанное на типе Picker ( DateTimePickerType ):

  • DATE_AND_TIME : календарный дата и время в UTC. Например, для представления 1 января 2023 года в 12:00 UTC, используйте 1672574400000 .
  • DATE_ONLY : дата календаря в 00:00:00 UTC. Например, для представления 1 января 2023 года используйте 1672531200000 .
  • TIME_ONLY : время в UTC. Например, для представления 12:00 вечера используйте 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 см. Показать сетку с коллекцией элементов .

Сетка поддерживает любое количество столбцов и элементов. Количество строк определяется элементами, разделенными на столбцах. Сетка с 10 пунктами и 2 столбцами имеет 5 строк. Сетка с 11 элементами и 2 столбцами имеет 6 строк.

Доступно для приложений Google Chat и надстройки Google Workspace.

Например, следующий JSON создает сетку из 2 столбцов с одним элементом:

"grid": {
  "title": "A fine collection of items",
  "columnCount": 2,
  "borderStyle": {
    "type": "STROKE",
    "cornerRadius": 4
  },
  "items": [
    {
      "image": {
        "imageUri": "https://www.example.com/image.png",
        "cropStyle": {
          "type": "SQUARE"
        },
        "borderStyle": {
          "type": "STROKE"
        }
      },
      "title": "An item",
      "textAlignment": "CENTER"
    }
  ],
  "onClick": {
    "openLink": {
      "url": "https://www.example.com"
    }
  }
}
JSON-представление
{
  "title": string,
  "items": [
    {
      object (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.

Стиль границы

Варианты стиля для границы карты или виджета, включая тип границы и цвет.

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "type": enum (BorderType),
  "strokeColor": {
    object (Color)
  },
  "cornerRadius": integer
}
Поля
type

enum ( BorderType )

Тип границы.

strokeColor

object ( Color )

Цвета, которые следует использовать, когда тип - BORDER_TYPE_STROKE .

Чтобы установить цвет хода, укажите значение для red , green и blue полей. Значение должно быть поплавковым числом от 0 до 1 на основе значения цвета RGB, где 0 (0/255) представляет собой отсутствие цвета, а 1 (255/255) представляет максимальную интенсивность цвета.

Например, следующее устанавливает цвет на красный на максимальной интенсивности:

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

alpha -поле недоступно для цвета удара. Если указано, это поле игнорируется.

cornerRadius

integer

Радиус углового для границы.

Граница

Представляет типы границ, применяемые к виджетам.

Доступно для приложений Google Chat и надстройки Google Workspace.

Перечисления
BORDER_TYPE_UNSPECIFIED Не используйте. Неуказано.
NO_BORDER Нет границы.
STROKE Значение по умолчанию. Набросок.

Griditemlayout

Представляет различные параметры макета, доступные для сетки.

Доступно для приложений Google Chat и надстройки Google Workspace.

Перечисления
GRID_ITEM_LAYOUT_UNSPECIFIED Не используйте. Неуказано.
TEXT_BELOW Название и подзаголовок показаны под изображением элемента сетки.
TEXT_ABOVE Название и подзаголовок показаны над изображением элемента сетки.

Колонны

Виджет Columns отображает до 2 столбцов в карте или диалоговом окне. Вы можете добавить виджеты в каждый столбец; Виджеты появляются в порядке, в котором они указаны. Для примера в приложениях Google Chat см. Дисплей карт и диалоги в столбцах .

Высота каждого столбца определяется более высокой колонкой. Например, если первый столбец выше второго столбца, оба столбца имеют высоту первого столбца. Поскольку каждый столбец может содержать различное количество виджетов, вы не можете определить строки или выравнивать виджеты между столбцами.

Столбцы отображаются бок о бок. Вы можете настроить ширину каждого столбца, используя поле HorizontalSizeStyle . Если ширина экрана пользователя слишком узкая, второй столбец завершается ниже первого:

  • В Интернете второй столбец завершается, если ширина экрана меньше или равна 480 пикселям.
  • На устройствах iOS второй столбец завершается, если ширина экрана меньше или равна 300 pt.
  • На устройствах Android второй столбец завершается, если ширина экрана меньше или равна 320 DP.

Чтобы включить более двух столбцов или для использования строк, используйте виджет Grid .

Доступно для приложений Google Chat и надстройки Google Workspace. Дополнительные интерфейсы, которые поддерживают столбцы, включают в себя:

  • Диалог отображается, когда пользователи открывают дополнение из черновика электронной почты.
  • Диалог отображается, когда пользователи открывают дополнение из меню «Добавить вложение» в событии календаря Google.
JSON-представление
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
Поля
columnItems[]

object ( Column )

Массив столбцов. Вы можете включить до 2 столбцов в карту или диалог.

Столбец

Колонка.

Дополнения 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 Workspace и приложения чата

Перечисления
HORIZONTAL_SIZE_STYLE_UNSPECIFIED Не используйте. Неуказано.
FILL_AVAILABLE_SPACE Значение по умолчанию. Колонна заполняет доступное пространство, до 70% ширины карты. Если оба столбца устанавливаются на FILL_AVAILABLE_SPACE , каждый столбец заполняет 50% пространства.
FILL_MINIMUM_SPACE Колонна заполняет наименьшее количество места и не более 30% от ширины карты.

ГоризонтальноеВыравнивание

Определяет, выровняются ли виджеты влево, справа или центр столбца.

Доступно для приложений Google Chat и недоступно для надстройки Google Workspace.

Перечисления
HORIZONTAL_ALIGNMENT_UNSPECIFIED Не используйте. Неуказано.
START Значение по умолчанию. Выравнивает виджеты с начальной позицией столбца. Для макетов слева направо выровняется влево. Для макетов справа налево выровняется справа.
CENTER Выравнивает виджеты в центр колонны.
END Выравнивает виджеты с конечной позицией столбца. Для макетов слева направо выравнивает виджеты вправо. Для макетов справа налево выравнивает виджеты влево.

ВертикальноеВыравнивание

Указывает, выравниваются ли виджеты в верхнюю, нижнюю или центр столбца.

Дополнения Google Workspace и приложения чата

Перечисления
VERTICAL_ALIGNMENT_UNSPECIFIED Не используйте. Неуказано.
CENTER Значение по умолчанию. Выравнивает виджеты в центр колонны.
TOP Выравнивает виджеты до вершины столбца.
BOTTOM Выравнивает виджеты до нижней части колонны.

Виджеты

Поддерживаемые виджеты, которые вы можете включить в столбец.

Дополнения 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)
  },
  "chipList": {
    object (ChipList)
  }
  // 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 Vidget.

textInput

object ( TextInput )

Виджет TextInput .

selectionInput

object ( SelectionInput )

SelectionInput виджет.

dateTimePicker

object ( DateTimePicker )

Виджет DateTimePicker .

chipList

object ( ChipList )

Виджет ChipList .

ЧипЛист

Список чипов выложен горизонтально, который может либо прокручивать горизонтали, либо завернуть к следующей линии.

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "layout": enum (Layout),
  "chips": [
    {
      object (Chip)
    }
  ]
}
Поля
layout

enum ( Layout )

Указанный макет списка чипов.

chips[]

object ( Chip )

Массив чипсов.

Макет

Макет списка чипов.

Перечисления
LAYOUT_UNSPECIFIED Не используйте. Неуказано.
WRAPPED Значение по умолчанию. Список чипов переходит к следующей строке, если не хватает горизонтального пространства.
HORIZONTAL_SCROLLABLE Чипсы прокручивают горизонтально, если они не вписываются в доступное пространство.

Чип

Текст, значок или текст и микросхема, который пользователи могут нажать.

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "icon": {
    object (Icon)
  },
  "label": string,
  "onClick": {
    object (OnClick)
  },
  "enabled": boolean,
  "disabled": boolean,
  "altText": string
}
Поля
icon

object ( Icon )

Изображение значка. Если устанавливаются и icon , и text , то значок появляется перед текстом.

label

string

Текст отображается внутри чипа.

onClick

object ( OnClick )

Необязательный. Действие для выполнения, когда пользователь нажимает на чип, такой как открытие гиперссылки или запуск пользовательской функции.

enabled
(deprecated)

boolean

Находится ли чип в активном состоянии и отвечает на действия пользователя. По умолчанию к true . Устарел. Вместо этого используйте disabled .

disabled

boolean

Находится ли чип в неактивном состоянии и игнорирует действия пользователя. По умолчанию false .

altText

string

Альтернативный текст, который используется для доступности.

Установите описательный текст, который позволяет пользователям знать, что делает чип. Например, если чип открывает гиперссылку, напишите: «Открывает новую вкладку браузера и перемещается в документацию по разработчику чата Google по адресу https://developers.google.com/workspace/chat» .

Карусель, также известная как ползунок, вращает и отображает список виджетов в формате слайд -шоу с кнопками, перемещающимися к предыдущему или следующему виджету.

Например, это представление JSON карусели, которая содержит три виджета текстовых абзац.

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

Доступно для приложений Google Chat и недоступно для надстройки Google Workspace.

JSON-представление
{
  "carouselCards": [
    {
      object (CarouselCard)
    }
  ]
}
Поля
carouselCards[]

object ( CarouselCard )

Список карт, включенных в карусель.

Каруселькар

Карта, которая может отображаться как элемент карусели. Доступно для приложений Google Chat и недоступно для надстройки Google Workspace.

JSON-представление
{
  "widgets": [
    {
      object (NestedWidget)
    }
  ],
  "footerWidgets": [
    {
      object (NestedWidget)
    }
  ]
}
Поля
widgets[]

object ( NestedWidget )

Список виджетов, отображаемых на карте карусели. Виджеты отображаются в указанном порядке.

footerWidgets[]

object ( NestedWidget )

Список виджетов, отображаемый в нижней части карты карусели. Виджеты отображаются в указанном порядке.

InstedWidget

Список виджетов, которые могут отображаться в содержащей макете, таких как CarouselCard . Доступно для приложений Google Chat и недоступно для надстройки Google Workspace.

JSON-представление
{

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "buttonList": {
    object (ButtonList)
  },
  "image": {
    object (Image)
  }
  // End of list of possible types for union field data.
}
Поля

Объединенные полевые data .

data могут быть только одним из следующих:

textParagraph

object ( TextParagraph )

Текстовый виджет абзаца.

buttonList

object ( ButtonList )

Виджет списка кнопок.

image

object ( Image )

Виджет изображения.

CollapseControl

Представляют собой управление расширением и коллапсом.

Доступно для приложений Google Chat и надстройки Google Workspace.

JSON-представление
{
  "horizontalAlignment": enum (HorizontalAlignment),
  "expandButton": {
    object (Button)
  },
  "collapseButton": {
    object (Button)
  }
}
Поля
horizontalAlignment

enum ( HorizontalAlignment )

Горизонтальное выравнивание кнопки расширения и коллапса.

expandButton

object ( Button )

Необязательный. Определите настраиваемую кнопку для расширения раздела. Оба Expandbutton и Collapsebutton Field должно быть установлено. Только один набор поля не вступит в силу. Если это поле не установлено, используется кнопка по умолчанию.

collapseButton

object ( Button )

Необязательный. Определите настраиваемую кнопку, чтобы свернуть раздел. Оба Expandbutton и Collapsebutton Field должно быть установлено. Только один набор поля не вступит в силу. Если это поле не установлено, используется кнопка по умолчанию.

DividerStyle

Разделитель стиль карты. В настоящее время используется только для разделов карт разделителей.

Доступно для приложений Google Chat и надстройки Google Workspace.

Перечисления
DIVIDER_STYLE_UNSPECIFIED Не используйте. Неуказано.
SOLID_DIVIDER Опция по умолчанию. Сделать твердый разделитель.
NO_DIVIDER Если установлено, делитель не отображается. Этот стиль полностью удаляет делитель из макета. Результат эквивалентен не добавлению делителя вообще.

Кардация

Действие карты - это действие, связанное с картой. Например, карта счета может включать такие действия, как удаление счета, счета по электронной почте или открыть счет в браузере.

Доступно для Google Workspace Adsons и недоступно для приложений Google Chat.

JSON-представление
{
  "actionLabel": string,
  "onClick": {
    object (OnClick)
  }
}
Поля
actionLabel

string

Метка, которая отображается как элемент меню действий.

onClick

object ( OnClick )

Действие onClick для этого элемента действия.

CardFixedFooter

Постоянный (липкий) нижний колонтитул, который появляется в нижней части карты.

Установка fixedFooter без указания primaryButton или secondaryButton , вызывает ошибку.

Для приложений для чата вы можете использовать фиксированные нижние колонтитулы в диалогах , но не сообщения для карт . Для примера в приложениях 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 Adsons и недоступно для приложений Google Chat.

Перечисления
DISPLAY_STYLE_UNSPECIFIED Не используйте. Неуказано.
PEEK Заголовок карты появляется в нижней части боковой панели, частично покрывая текущую верхнюю карту стека. Нажатие на заголовок вытаскивает карту в стек карт. Если на карте нет заголовка, вместо этого используется сгенерированный заголовок.
REPLACE Значение по умолчанию. Карта отображается путем замены вида верхней карты в стеке карт.