Cards v2

Карта

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

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

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

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

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

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

URL-адрес HTTPS изображения в заголовке карты.

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
}
Поля
header

string

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

widgets[]

object ( Widget )

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

collapsible

boolean

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

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

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

uncollapsibleWidgetsCount

integer

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

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

Виджет

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

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

JSON-представление
{
  "horizontalAlignment": enum (HorizontalAlignment),

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "divider": {
    object (Divider)
  },
  "grid": {
    object (Grid)
  },
  "columns": {
    object (Columns)
  }
  // End of list of possible types for union field data.
}
Поля
horizontalAlignment

enum ( HorizontalAlignment )

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

data поля объединения. Виджет может иметь только один из следующих элементов. Вы можете использовать несколько полей виджетов для отображения большего количества элементов. data могут быть только одним из следующих:
textParagraph

object ( TextParagraph )

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

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

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

object ( Image )

Отображает изображение.

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

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

object ( DecoratedText )

Отображает декорированный текстовый элемент.

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

"decoratedText": {
  "icon": {
    "knownIcon": "EMAIL"
  },
  "topLabel": "Email Address",
  "text": "sasha@example.com",
  "bottomLabel": "This is a new Email address!",
  "switchControl": {
    "name": "has_send_welcome_email_to_sasha",
    "selected": false,
    "controlType": "CHECKBOX"
  }
}
buttonList

object ( ButtonList )

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

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

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

object ( TextInput )

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

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

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

Другой пример: следующий JSON создает текстовый ввод для языка программирования со статическими предложениями:

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

object ( SelectionInput )

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

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

"selectionInput": {
  "name": "size",
  "label": "Size"
  "type": "DROPDOWN",
  "items": [
    {
      "text": "S",
      "value": "small",
      "selected": false
    },
    {
      "text": "M",
      "value": "medium",
      "selected": true
    },
    {
      "text": "L",
      "value": "large",
      "selected": false
    },
    {
      "text": "XL",
      "value": "extra_large",
      "selected": false
    }
  ]
}
dateTimePicker

object ( DateTimePicker )

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

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

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

object ( Divider )

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

Например, следующий JSON создает разделитель:

"divider": {
}
grid

object ( Grid )

Отображает сетку с коллекцией элементов.

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

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

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

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

"columns": {
  "columnItems": [
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "First column text paragraph"
          }
        }
      ]
    },
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "Second column text paragraph"
          }
        }
      ]
    }
  ]
}

ТекстАбзац

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

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

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

string

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

Изображение

Изображение, заданное URL-адресом и может иметь действие onClick . Пример см. в разделе «Добавление изображения» .

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

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

string

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

Например:

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

object ( OnClick )

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

altText

string

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

По щелчку

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

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

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

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

data поля объединения.

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

action

object ( Action )

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

card

object ( Card )

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

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

Действие

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

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

JSON-представление
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction)
}
Поля
function

string

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

Пример использования см. в разделе Чтение данных формы .

parameters[]

object ( ActionParameter )

Список параметров действия.

loadIndicator

enum ( LoadIndicator )

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

persistValues

boolean

Указывает, сохраняются ли значения формы после действия. Значение по умолчанию false .

Если true , значения формы сохраняются после запуска действия. Чтобы позволить пользователю вносить изменения во время обработки действия, установите для LoadIndicator значение NONE . Для сообщений с карточками в приложениях чата необходимо также установить для ResponseType действия значение UPDATE_MESSAGE и использовать тот же cardId из карточки, которая содержала действие.

Если false , значения формы очищаются при запуске действия. Чтобы запретить пользователю вносить изменения во время обработки действия, установите для LoadIndicator значение SPINNER .

interaction

enum ( Interaction )

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

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

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

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

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

ОпенАс

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

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

Перечисления
FULL_SIZE Ссылка открывается в полноразмерном окне (если клиент использует именно этот фрейм).
OVERLAY Ссылка открывается в виде наложения, например всплывающего окна.

При Закрытии

Что делает клиент, когда ссылка, открытая действием OnClick закрывается.

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

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

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

Перечисления
NOTHING Значение по умолчанию. Карта не перезагружается; Ничего не произошло.
RELOAD

Перезагружает карту после закрытия дочернего окна.

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

УкрашенныйТекст

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

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

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

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

object ( Icon )

Устарело в пользу startIcon .

startIcon

object ( Icon )

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

topLabel

string

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

text

string

Необходимый. Первичный текст.

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

wrapText

boolean

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

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

bottomLabel

string

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

onClick

object ( OnClick )

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

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

object ( Button )

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

switchControl

object ( SwitchControl )

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

endIcon

object ( Icon )

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

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

Икона

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

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

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

JSON-представление
{
  "altText": string,
  "imageType": enum (ImageType),

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

string

Необязательный. Описание значка, используемого для специальных возможностей. Если не указано, предоставляется значение Button по умолчанию. Рекомендуется установить полезное описание того, что отображает значок, и, если применимо, что он делает. Например, A user's account portrait или Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/workspace/chat .

Если значок установлен в Button , altText отображается как вспомогательный текст, когда пользователь наводит курсор на кнопку. Однако если кнопка также устанавливает text , altText значка игнорируется.

imageType

enum ( ImageType )

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

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

string

Отобразите один из встроенных значков Google Workspace.

Например, чтобы отобразить значок самолета, укажите AIRPLANE . Для автобуса укажите BUS .

Полный список поддерживаемых значков см. в разделе «Встроенные значки» .

iconUrl

string

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

Например:

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

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

materialIcon

object ( MaterialIcon )

Отобразите один из значков материалов Google .

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

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

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

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

Значок 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

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

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

weight

integer

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

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

grade

integer

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

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

Кнопка

Текст, значок или кнопка с текстом и значком, которую пользователи могут нажать. Пример использования приложений 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
}
Поля
text

string

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

icon

object ( Icon )

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

color

object ( Color )

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

Если параметр не установлен, фон изображения будет белым, а цвет шрифта — синим.

Для красного, зеленого и синего значение каждого поля представляет собой число float , которое можно выразить двумя способами: как число от 0 до 255, разделенное на 255 (153/255), или как значение от 0 до 255. 1 (0,6). 0 представляет отсутствие цвета, а 1 или 255/255 представляет полное присутствие этого цвета по шкале RGB.

При необходимости установите alpha , которая задает уровень прозрачности с помощью этого уравнения:

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

Для alpha значение 1 соответствует сплошному цвету, а значение 0 соответствует полностью прозрачному цвету.

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

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

object ( OnClick )

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

disabled

boolean

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

altText

string

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

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

Цвет

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

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

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

Пример (Java):

 import com.google.type.Color;

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

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

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

Пример (iOS/Obj-C):

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

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

Пример (JavaScript):

// ...

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

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

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

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

// ...
JSON-представление
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
Поля
red

number

Количество красного цвета в цвете как значение в интервале [0, 1].

green

number

Количество зеленого цвета в цвете как значение в интервале [0, 1].

blue

number

Количество синего цвета в цвете как значение в интервале [0, 1].

alpha

number

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

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

Это означает, что значение 1,0 соответствует сплошному цвету, тогда как значение 0,0 соответствует полностью прозрачному цвету. При этом используется сообщение-оболочка, а не простой скаляр с плавающей запятой, чтобы можно было отличить значение по умолчанию от значения, которое не установлено. Если этот параметр опущен, этот цветовой объект отображается как сплошной цвет (как если бы значению альфа было явно присвоено значение 1,0).

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 )

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

Ввод текста

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

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

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

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

JSON-представление
{
  "name": string,
  "label": string,
  "hintText": string,
  "value": string,
  "type": enum (Type),
  "onChangeAction": {
    object (Action)
  },
  "initialSuggestions": {
    object (Suggestions)
  },
  "autoCompleteAction": {
    object (Action)
  },
  "placeholderText": string
}
Поля
name

string

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

Подробные сведения о работе с входными данными формы см. в разделе Получение данных формы .

label

string

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

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

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 Поле ввода текста имеет фиксированную высоту в несколько строк.

Действия рендеринга

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

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

Поля
action

Action

Действие

Поля
navigations[]

Navigation

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

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

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

navigations: {
  pushCard: CARD
}

Замените верхнюю карту новой картой.

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

navigations: {
  updateCard: CARD
}

Предложения

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

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

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

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

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

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

object ( SuggestionItem )

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

ПредложениеItem

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

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

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

Чтобы собирать неопределенные или абстрактные данные от пользователей, используйте виджет 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

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

multiSelectMinQueryLength

integer

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

Если не указано, по умолчанию используется 0 символов для статических источников данных и 3 символа для внешних источников данных.

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

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

externalDataSource

object ( Action )

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

platformDataSource

object ( PlatformDataSource )

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

Тип выбора

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

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

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

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

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

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

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

Примеры реализации меню с множественным выбором см. в разделе Добавление меню с множественным выбором .

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

SelectionItem

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

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

Представление JSON
{
  "text": string,
  "value": string,
  "selected": boolean,
  "startIconUri": string,
  "bottomText": string
}
Поля
text

string

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

value

string

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

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

selected

boolean

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

startIconUri

string

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

bottomText

string

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

PlatformDatasource

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

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

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

  // Union field data_source can be only one of the following:
  "commonDataSource": enum (CommonDataSource),
  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
  // End of list of possible types for union field data_source.
}
Поля
Поле Союза data_source . Источник данных. data_source может быть только одним из следующих:
commonDataSource

enum ( CommonDataSource )

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

hostAppDataSource

object ( HostAppDataSourceMarkup )

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

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

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

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

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

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

string

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

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

label

string

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

type

enum ( DateTimePickerType )

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

valueMsEpoch

string ( int64 format)

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

Borderstyle

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

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

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

enum ( BorderType )

Тип границы.

strokeColor

object ( Color )

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

cornerRadius

integer

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

Граница

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

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

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

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

Представление JSON
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
Поля
columnItems[]

object ( Column )

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

Столбец

Колонка.

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

Представление JSON
{
  "horizontalSizeStyle": enum (HorizontalSizeStyle),
  "horizontalAlignment": enum (HorizontalAlignment),
  "verticalAlignment": enum (VerticalAlignment),
  "widgets": [
    {
      object (Widgets)
    }
  ]
}
Поля
horizontalSizeStyle

enum ( HorizontalSizeStyle )

Указывает, как столбец заполняет ширину карты.

horizontalAlignment

enum ( HorizontalAlignment )

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

verticalAlignment

enum ( VerticalAlignment )

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

widgets[]

object ( Widgets )

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

Horizontalsizestyle

Указывает, как столбец заполняет ширину карты. Ширина каждого столбца зависит как от HorizontalSizeStyle , так и от ширины виджетов в колонке.

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

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

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

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

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

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

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

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

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

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

Виджеты

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

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

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

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

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

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

textParagraph

object ( TextParagraph )

Виджет TextParagraph .

image

object ( Image )

Виджет Image .

decoratedText

object ( DecoratedText )

Виджет DecoratedText .

buttonList

object ( ButtonList )

ButtonList Vidget.

textInput

object ( TextInput )

Виджет TextInput .

selectionInput

object ( SelectionInput )

SelectionInput виджет.

dateTimePicker

object ( DateTimePicker )

Виджет DateTimePicker .

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