Card

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

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

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

Как открыть конструктор карточек

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

Примечание. На одну карточку можно добавить до 100 виджетов. Если виджеты в разделе превышают общее количество в 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)
  },
  "expressionData": [
    {
      object (ExpressionData)
    }
  ]
}
Поля
header

object (CardHeader)

Заголовок карточки. Обычно он содержит изображение и заголовок. Заголовки всегда находятся в верхней части карточки.

sections[]

object (Section)

Содержит коллекцию виджетов. У каждого раздела есть собственный заголовок (необязательно). Разделы визуально отделены друг от друга линией. Пример для приложений Google Chat приведен в разделе Определение раздела карточки.

sectionDividerStyle

enum (DividerStyle)

Стиль разделителя между заголовком, разделами и нижним колонтитулом.

cardActions[]

object (CardAction)

Действия с карточкой. Действия добавляются в меню панели инструментов карточки. Поддерживает до 10 элементов 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.

expressionData[]

object (ExpressionData)

Данные выражения для карточки.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

CardHeader

Представляет заголовок карточки. Пример для приложений 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

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

imageAltText

string

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

Раздел

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

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

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

string

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

widgets[]

object (Widget)

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

collapsible

boolean

Указывает, можно ли свернуть этот раздел.

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

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

uncollapsibleWidgetsCount

integer

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

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

id

string

Уникальный идентификатор, присвоенный разделу, который используется для идентификации раздела, подлежащего изменению. Идентификатор должен содержать не более 64 символов и иметь формат [a-zA-Z0-9-]+.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

collapseControl

object (CollapseControl)

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

Виджет

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

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

JSON-представление
{
  "horizontalAlignment": enum (HorizontalAlignment),
  "id": string,
  "visibility": enum (Visibility),
  "eventActions": [
    {
      object (EventAction)
    }
  ],

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

enum (HorizontalAlignment)

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

id

string

Уникальный идентификатор, назначенный виджету, который используется для идентификации виджета, который необходимо изменить. Идентификатор должен содержать не более 64 символов и иметь формат [a-zA-Z0-9-]+.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

visibility

enum (Visibility)

Указывает, виден ли виджет. Значение по умолчанию: VISIBLE.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

eventActions[]

object (EventAction)

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

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

В виджете может быть только один из следующих элементов: Чтобы показывать больше товаров, можно использовать несколько полей виджета. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
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 элементами и двумя столбцами содержит пять строк. Сетка с 11 элементами и двумя столбцами содержит шесть строк.

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

Показывает до двух столбцов.

Если вам нужно больше двух столбцов или вы хотите использовать строки, добавьте виджет Grid.

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

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

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

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

object (ChipList)

Список чипов.

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

"chipList": {
  "chips": [
    {
      "label": "Edit",
      "disabled": true
    },
    {
      "icon": {
        "knownIcon": "INVITE",
        "altText": "check calendar"
      },
      "onClick": {
        "openLink": {
          "url": "https://example.com/calendar"
        }
      }
    }
  ]
}
Конец взаимоисключающих полей.

TextParagraph

Абзац текста, поддерживающий форматирование. Пример для приложений 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.

TextSyntax

Синтаксис для форматирования текста.

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

URL по HTTPS, на котором размещено изображение.

Пример:

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

object (OnClick)

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

altText

string

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

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)
  },

  "button": {
    object (Button)
  },
  "switchControl": {
    object (SwitchControl)
  },
  "endIcon": {
    object (Icon)
  }
}
Поля
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)

Это действие активируется, когда пользователь нажимает на любую часть виджета DecoratedText (включая text, topLabel, bottomLabel и значки), кроме отдельных интерактивных элементов управления (button или switchControl).

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

object (Button)

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

switchControl

object (SwitchControl)

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

endIcon

object (Icon)

Значок, который показывается после текста.

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

Конец взаимоисключающих полей.

VerticalAlignment

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

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

SwitchControl

Переключатель или флажок в виджете decoratedText.

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

Поддерживается только в виджете decoratedText.

JSON-представление
{
  "name": string,
  "value": string,
  "selected": boolean,
  "onChangeAction": {
    object (Action)
  },
  "controlType": enum (ControlType)
}
Поля
name

string

Название, по которому виджет переключателя идентифицируется в событии ввода формы (как ключ в CommonEventObject.form_inputs).

Подробнее о том, как работать с входными данными формы…

value

string

Значение, возвращаемое в CommonEventObject.form_inputs[name].string_inputs, когда переключатель выбран (selected – true). Если selected – true, а value не задано, в stringInputs.value возвращается пустая строка (""). Если selected – это false, то это значение опускается из stringInputs.value.

Подробнее о том, как работать с входными данными формы…

selected

boolean

Если true, переключатель выбран, а его value включен в CommonEventObject.form_inputs[name].string_inputs.value.

onChangeAction

object (Action)

Действие, которое выполняется при изменении состояния переключателя, например запуск функции.

controlType

enum (ControlType)

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

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

ControlType

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

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

Перечисления
SWITCH Переключатель.
CHECKBOX Поддержка прекращена. Вместо этого используйте CHECK_BOX.
CHECK_BOX Флажок.

TextInput

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

Приложения 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,

  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
}
Поля
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 (2-е издание).

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

Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
hostAppDataSource

object (HostAppDataSourceMarkup)

Источник данных, уникальный для размещаемого приложения Google Workspace, например электронные письма Gmail, мероприятия Google Календаря или сообщения Google Chat.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

Конец взаимоисключающих полей.

Тип

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

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

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

RenderActions

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

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

Поля
action

Action

Действие

Поля
navigations[]

Navigation

Добавляет, удаляет или обновляет карточку.

Дополнения в Google Chat.

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

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

navigations: {
  pushCard: CARD
}

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

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

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

SuggestionItem

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

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

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

  "text": string
}
Поля
Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
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.

InputType

Тип виджета ввода.

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

HostAppDataSourceMarkup

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

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

  "chatDataSource": {
    object (ChatClientDataSourceMarkup)
  },
  "workflowDataSource": {
    object (WorkflowDataSourceMarkup)
  }
}
Поля
Приложение Google Workspace, которое заполняет доступные элементы для виджета. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
chatDataSource

object (ChatClientDataSourceMarkup)

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

workflowDataSource

object (WorkflowDataSourceMarkup)

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

Конец взаимоисключающих полей.

ChatClientDataSourceMarkup

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

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

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

  "spaceDataSource": {
    object (SpaceDataSource)
  }
}
Поля
Источник данных Google Chat. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
spaceDataSource

object (SpaceDataSource)

чат-группы Google Chat, в которых состоит пользователь;

Конец взаимоисключающих полей.

SpaceDataSource

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

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

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

boolean

Если задано значение true, в меню множественного выбора по умолчанию выбирается текущая чат-группа Google Chat.

WorkflowDataSourceMarkup

* Поддерживается только Google Workspace Workflow, но не приложениями Google Chat или дополнениями Google Workspace.

В виджете TextInput или SelectionInput с типом MULTI_SELECT или в виджете DateTimePicker укажите источник данных от Google.

JSON-представление
{
  "includeVariables": boolean,
  "type": enum (Type)
}
Поля
includeVariables

boolean

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

type

enum (Type)

Тип источника данных.

Тип

Перечисление, представляющее тип источника данных рабочего процесса.

Перечисления
UNKNOWN Значение по умолчанию. Не использовать.
USER Пользователи Google Workspace. Пользователь может просматривать и выбирать только пользователей из своей организации Google Workspace.
SPACE чат-группы Google Chat, в которых состоит пользователь;
USER_WITH_FREE_FORM Пользователи могут выбрать существующих участников из своей организации Google Workspace или вручную ввести адрес электронной почты или действительный домен.

SelectionInput

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

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

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

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

JSON-представление
{
  "name": string,
  "label": string,
  "type": enum (SelectionType),
  "items": [
    {
      object (SelectionItem)
    }
  ],
  "onChangeAction": {
    object (Action)
  },
  "multiSelectMinQueryLength": integer,
  "dataSourceConfigs": [
    {
      object (DataSourceConfig)
    }
  ],
  "multiSelectMaxSelectedItems": integer,
  "hintText": string,

  "externalDataSource": {
    object (Action)
  },
  "platformDataSource": {
    object (PlatformDataSource)
  }
}
Поля
name

string

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

Подробнее о том, как работать с входными данными формы…

label

string

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

Укажите текст, который поможет пользователю ввести информацию, необходимую вашему приложению. Например, если пользователи выбирают срочность заявки в раскрывающемся меню, ярлыком может быть "Срочность" или "Выберите срочность".

type

enum (SelectionType)

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

items[]

object (SelectionItem)

Массив выбираемых элементов. Например, это может быть массив переключателей или флажков. Поддерживается до 100 объектов.

onChangeAction

object (Action)

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

Подробнее о том, как работать с входными данными формы…

multiSelectMinQueryLength

integer

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

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

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

object (DataSourceConfig)

Необязательное поле. Конфигурации источников данных для элемента управления выбором. Это поле позволяет более точно управлять источником данных.

Если указано это поле, то поля multiSelectMaxSelectedItems, multiSelectMinQueryLength, externalDataSource и platformDataSource игнорируются.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio.

Доступно для Dropdown widget в приложениях Google Chat. Для виджета Dropdown в приложениях Google Chat поддерживается только один элемент DataSourceConfig. Если задано несколько значений DataSourceConfig, используется только первое.

multiSelectMaxSelectedItems

integer

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

hintText

string

Необязательное поле. Текст, который появляется под полем ввода и помогает пользователям, предлагая ввести определенное значение. Этот текст виден всегда.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

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

Доступно для приложений Google Chat и недоступно для дополнений Google Workspace. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:

externalDataSource

object (Action)

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

platformDataSource

object (PlatformDataSource)

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

Конец взаимоисключающих полей.

SelectionType

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

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

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

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

Раскрывающееся меню. Пользователи могут выбрать один пункт из меню.

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

  • Данные Google Workspace. Элементы заполняются с использованием данных из Google Workspace, например пользователей Google Workspace или чат-групп Google Chat.
  • Внешние данные. Объекты заполняются из внешнего источника данных за пределами Google Workspace.

Примеры реализации раскрывающихся меню для приложений Chat приведены в статьях Как добавить раскрывающееся меню и Как динамически заполнять раскрывающиеся меню.

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

MULTI_SELECT

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

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

  • Данные Google Workspace. Элементы заполняются с использованием данных из Google Workspace, например пользователей Google Workspace или чат-групп Google Chat.
  • Внешние данные. Объекты заполняются из внешнего источника данных за пределами Google Workspace.

Примеры реализации меню с множественным выбором для приложений Chat приведены в статье Как добавить меню с множественным выбором.

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

PlatformDataSource

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

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

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

  "commonDataSource": enum (CommonDataSource),
  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
}
Поля
Источник данных. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
commonDataSource

enum (CommonDataSource)

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

hostAppDataSource

object (HostAppDataSourceMarkup)

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

Это поле поддерживает клиентские библиотеки Google API, но недоступно в клиентских библиотеках Cloud. Подробнее о том, как установить клиентские библиотеки…

Конец взаимоисключающих полей.

CommonDataSource

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

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

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

DataSourceConfig

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

Доступно для приложений Google Chat и дополнений Google Workspace, которые расширяют возможности Google Workspace Studio.

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

  "remoteDataSource": {
    object (Action)
  },
  "platformDataSource": {
    object (PlatformDataSource)
  }
  "minCharactersTrigger": integer
}
Поля
Источник данных. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
remoteDataSource

object (Action)

Данные получены от внешнего поставщика.

platformDataSource

object (PlatformDataSource)

Данные получены из приложения Google Workspace.

Конец взаимоисключающих полей.
minCharactersTrigger

integer

Минимальное количество символов, которое пользователь должен ввести, чтобы этот поставщик данных начал возвращать результаты.

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": string,
  "timezoneOffsetDate": integer,
  "onChangeAction": {
    object (Action)
  },

  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
}
Поля
name

string

Название, по которому DateTimePicker идентифицируется в событии ввода формы.

Подробнее о том, как работать с входными данными формы…

label

string

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

type

enum (DateTimePickerType)

Указывает, поддерживает ли виджет ввод даты, времени или даты и времени.

valueMsEpoch

string (int64 format)

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

Укажите значение в зависимости от типа инструмента выбора (DateTimePickerType):

  • DATE_AND_TIME – дата и время по UTC. Например, 1 января 2023 года в 12:00 по всемирному координированному времени указывается так: 1672574400000.
  • DATE_ONLY – календарная дата в 00:00:00 по UTC. Например, 1 января 2023 года будет выглядеть так: 1672531200000.
  • TIME_ONLY – время по UTC. Например, чтобы указать 12:00, используйте 43200000 (или 12 * 60 * 60 * 1000).
timezoneOffsetDate

integer

Число, представляющее разницу часового пояса с UTC в минутах. Если правило настроено, valueMsEpoch отображается в указанном часовом поясе. Если значение не задано, по умолчанию используется часовой пояс пользователя.

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

onChangeAction

object (Action)

Активируется, когда пользователь нажимает Сохранить или Очистить в интерфейсе DateTimePicker.

Источник данных, который представляет дату и время. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
hostAppDataSource

object (HostAppDataSourceMarkup)

Источник данных, уникальный для размещаемого приложения Google Workspace, например электронные письма Gmail, мероприятия Google Календаря или сообщения Google Chat.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

Конец взаимоисключающих полей.

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 элементами и двумя столбцами содержит пять строк. Сетка с 11 элементами и двумя столбцами содержит шесть строк.

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

Этот обратный вызов повторно используется каждым отдельным элементом сетки, но с идентификатором элемента, добавленным к параметрам обратного вызова (под ключом "grid_item_identifier").

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.

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

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

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

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

cornerRadius

integer

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

BorderType

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

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

Перечисления
BORDER_TYPE_UNSPECIFIED Не использовать. Не указано.
NO_BORDER Без рамки.
STROKE Значение по умолчанию. Контур.

GridItemLayout

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

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

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

Столбцы

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

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

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

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

Если вам нужно больше двух столбцов или вы хотите использовать строки, добавьте виджет Grid.

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

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

object (Column)

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

Столбец

Столбец.

Дополнения Google Workspace и приложения Chat

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 и приложения Chat

Перечисления
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 Workspace и приложения Chat

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

Виджеты

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

Дополнения Google Workspace и приложения Chat

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

  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "chipList": {
    object (ChipList)
  }
}
Поля
Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
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"

chipList

object (ChipList)

Виджет "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 и label), значок будет показан перед ярлыком.

label

string

Текст, который показывается внутри чипа.

onClick

object (OnClick)

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

enabled
(deprecated)

boolean

Поддержка прекращена. Используйте disabled.

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

disabled

boolean

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

altText

string

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

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

CarouselCard

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

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

object (NestedWidget)

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

footerWidgets[]

object (NestedWidget)

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

NestedWidget

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

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

  "textParagraph": {
    object (TextParagraph)
  },
  "buttonList": {
    object (ButtonList)
  },
  "image": {
    object (Image)
  }
}
Поля
Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
textParagraph

object (TextParagraph)

Виджет текстового абзаца.

buttonList

object (ButtonList)

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

image

object (Image)

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

Конец взаимоисключающих полей.

Доступ

Указывает, виден ли элемент интерфейса.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

Перечисления
VISIBILITY_UNSPECIFIED Видимость не указана. Не используйте.
VISIBLE Элемент интерфейса виден.
HIDDEN Элемент интерфейса скрыт.

EventAction

Представляет действие, которое можно выполнить с элементом интерфейса.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

JSON-представление
{
  "actionRuleId": string,
  "postEventTriggers": [
    {
      object (Trigger)
    }
  ],

  "commonWidgetAction": {
    object (CommonWidgetAction)
  }
}
Поля
actionRuleId

string

Уникальный идентификатор правила ActionRule.

postEventTriggers[]

object (Trigger)

Список триггеров, которые будут активированы после выполнения EventAction.

Действие, которое нужно выполнить. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
commonWidgetAction

object (CommonWidgetAction)

Стандартное действие виджета.

Конец взаимоисключающих полей.

Триггер

Представляет триггер.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

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

string

Уникальный идентификатор правила ActionRule.

CommonWidgetAction

Представляет действие, не связанное с виджетом.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

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

  "updateVisibilityAction": {
    object (UpdateVisibilityAction)
  }
}
Поля
Действие, которое нужно выполнить. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
updateVisibilityAction

object (UpdateVisibilityAction)

Действие по обновлению видимости виджета.

Конец взаимоисключающих полей.

UpdateVisibilityAction

Представляет действие, которое обновляет видимость виджета.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

JSON-представление
{
  "visibility": enum (Visibility)
}
Поля
visibility

enum (Visibility)

Новое значение настройки доступа.

CollapseControl

Представляет элемент управления для развертывания и свертывания.

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

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

enum (HorizontalAlignment)

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

expandButton

object (Button)

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

collapseButton

object (Button)

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

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

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

Если задать fixedFooter, не указав primaryButton или secondaryButton, возникнет ошибка.

В приложениях 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 Значение по умолчанию. Карточка показывается вместо верхней карточки в стопке.

ExpressionData

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

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

JSON-представление
{
  "id": string,
  "expression": string,
  "conditions": [
    {
      object (Condition)
    }
  ],
  "eventActions": [
    {
      object (EventAction)
    }
  ]
}
Поля
id

string

Уникальный идентификатор ExpressionData.

expression

string

Некомпилированное выражение.

conditions[]

object (Condition)

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

eventActions[]

object (EventAction)

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

Условие

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

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

JSON-представление
{
  "actionRuleId": string,

  "expressionDataCondition": {
    object (ExpressionDataCondition)
  }
}
Поля
actionRuleId

string

Уникальный идентификатор правила ActionRule.

Условие. Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
expressionDataCondition

object (ExpressionDataCondition)

Условие, которое определяется данными выражения.

Конец взаимоисключающих полей.

ExpressionDataCondition

Представляет условие, которое оценивается с помощью CEL.

Доступно для дополнений Google Workspace, которые расширяют возможности Google Workspace Studio. Недоступно для приложений Google Chat.

JSON-представление
{
  "conditionType": enum (ConditionType)
}
Поля
conditionType

enum (ConditionType)

Тип условия.

ConditionType

Тип условия.

Перечисления
CONDITION_TYPE_UNSPECIFIED Тип условия не указан.
EXPRESSION_EVALUATION_SUCCESS Вычисление выражения выполнено успешно.
EXPRESSION_EVALUATION_FAILURE Не удалось оценить выражение.