Class CardService

服务

借助 CardService,您可以创建在各种 Google 可扩展性产品(例如 Google Workspace 插件)中使用的通用卡片。

以下是附加内容卡片的示例。

function createCard() {
  return CardService.newCardBuilder()
      .setHeader(CardService.newCardHeader().setTitle('CardTitle'))
      .build();
}

或者,您也可以返回多张卡片,如下所示:

function createCards() {
  return [
    CardService.newCardBuilder().build(),
    CardService.newCardBuilder().build(),
    CardService.newCardBuilder().build(),
  ];
}

以下示例展示了如何定义包含标题、文本、图片和菜单项的卡片:

function createWidgetDemoCard() {
  return CardService.newCardBuilder()
      .setHeader(
          CardService.newCardHeader()
              .setTitle('Widget demonstration')
              .setSubtitle('Check out these widgets')
              .setImageStyle(CardService.ImageStyle.SQUARE)
              .setImageUrl('https://www.example.com/images/headerImage.png'),
          )
      .addSection(
          CardService.newCardSection()
              .setHeader('Simple widgets')  // optional
              .addWidget(
                  CardService.newTextParagraph().setText(
                      'These widgets are display-only. ' +
                          'A text paragraph can have multiple lines and ' +
                          'formatting.',
                      ),
                  )
              .addWidget(
                  CardService.newImage().setImageUrl(
                      'https://www.example.com/images/mapsImage.png',
                      ),
                  ),
          )
      .addCardAction(
          CardService.newCardAction().setText('Gmail').setOpenLink(
              CardService.newOpenLink().setUrl('https://mail.google.com/mail'),
              ),
          )
      .build();
}

Chat 应用卡片示例。

const cardHeader =
    CardService.newCardHeader()
        .setTitle('Sasha')
        .setSubtitle('Software Engineer')
        .setImageUrl(
            'https://developers.google.com/chat/images/quickstart-app-avatar.png',
            )
        .setImageStyle(CardService.ImageStyle.CIRCLE)
        .setImageAltText('Avatar for Sasha');

const cardSection =
    CardService.newCardSection()
        .setHeader('Contact Info')
        .setCollapsible(true)
        .setNumUncollapsibleWidgets(1)
        .addWidget(
            CardService.newDecoratedText()
                .setStartIcon(
                    CardService.newIconImage().setIcon(CardService.Icon.EMAIL))
                .setText('sasha@example.com'),
            )
        .addWidget(
            CardService.newDecoratedText()
                .setStartIcon(
                    CardService.newIconImage().setIcon(CardService.Icon.PERSON))
                .setText('<font color="#80e27e">Online</font>'),
            )
        .addWidget(
            CardService.newDecoratedText()
                .setStartIcon(
                    CardService.newIconImage().setIcon(CardService.Icon.PHONE))
                .setText('+1 (555) 555-1234'),
            )
        .addWidget(
            CardService.newButtonSet()
                .addButton(
                    CardService.newTextButton().setText('Share').setOpenLink(
                        CardService.newOpenLink().setUrl(
                            'https://example.com/share'),
                        ),
                    )
                .addButton(
                    CardService.newTextButton()
                        .setText('Edit')
                        .setOnClickAction(
                            CardService.newAction()
                                .setFunctionName('goToView')
                                .setParameters({viewType: 'EDIT'}),
                            ),
                    ),
        );

const card = CardService.newCardBuilder()
                 .setHeader(cardHeader)
                 .addSection(cardSection)
                 .build();

属性

属性类型说明
BorderTypeBorderTypeBorderType 枚举。
ChipListLayoutChipListLayoutChipListLayout 枚举。
ComposedEmailTypeComposedEmailTypeComposedEmailType 枚举。
ContentTypeContentTypeContentType 枚举。
GridItemLayoutGridItemLayoutGridItemLayout 枚举。
HorizontalAlignmentHorizontalAlignmentHorizontalAlignment 枚举。
IconIconIcon 枚举。
ImageButtonStyleImageButtonStyleImageButtonStyle 枚举。
ImageCropTypeImageCropTypeImageCropType 枚举。
ImageStyleImageStyleImageStyle 枚举。
InputTypeInputTypeInputType 枚举。
LoadIndicatorLoadIndicatorLoadIndicator 枚举。
OnCloseOnCloseOnClose 枚举。
OpenAsOpenAsOpenAs 枚举。
SelectionInputTypeSelectionInputTypeSelectionInputType 枚举。
TextButtonStyleTextButtonStyleTextButtonStyle 枚举。
UpdateDraftBodyTypeUpdateDraftBodyTypeUpdateDraftBodyType 枚举。

方法

方法返回类型简介
newAction()Action创建新的 Action
newActionResponseBuilder()ActionResponseBuilder创建新的 ActionResponseBuilder
newActionStatus()ActionStatus创建新的 ActionStatus
newAttachment()Attachment创建新的 Attachment
newAuthorizationAction()AuthorizationAction创建新的 AuthorizationAction
newAuthorizationException()AuthorizationException创建新的 AuthorizationException
newBorderStyle()BorderStyle创建新的 BorderStyle
newButtonSet()ButtonSet创建新的 ButtonSet
newCalendarEventActionResponseBuilder()CalendarEventActionResponseBuilder创建新的 CalendarEventActionResponseBuilder
newCardAction()CardAction创建新的 CardAction
newCardBuilder()CardBuilder创建新的卡片制作工具。
newCardHeader()CardHeader创建新的 CardHeader
newCardSection()CardSection创建新的 CardSection
newCardWithId()CardWithId创建新的 CardWithId
newChatActionResponse()ChatActionResponse创建新的 ChatActionResponse
newChatResponseBuilder()ChatResponseBuilder创建新的 ChatResponseBuilder
newChip()Chip创建新的 Chip
newChipList()ChipList创建新的 ChipList
newCollapseControl()CollapseControl创建新的 CollapseControl
newColumn()Column创建新的 Column
newColumns()Columns创建一组新的 Columns
newComposeActionResponseBuilder()ComposeActionResponseBuilder创建新的 ComposeActionResponseBuilder
newDatePicker()DatePicker创建新的 DatePicker
newDateTimePicker()DateTimePicker创建新的 DateTimePicker
newDecoratedText()DecoratedText创建新的 DecoratedText
newDialog()Dialog创建新的 Dialog
newDialogAction()DialogAction创建新的 DialogAction
newDivider()Divider创建新的 Divider
newDriveItemsSelectedActionResponseBuilder()DriveItemsSelectedActionResponseBuilder创建新的 DriveItemsSelectedActionResponseBuilder
newEditorFileScopeActionResponseBuilder()EditorFileScopeActionResponseBuilder创建新的 EditorFileScopeActionResponseBuilder
newFixedFooter()FixedFooter创建新的 FixedFooter
newGrid()Grid创建新的 Grid
newGridItem()GridItem创建新的 GridItem
newIconImage()IconImage创建新的 IconImage
newImage()Image创建新的 Image
newImageButton()ImageButton创建新的 ImageButton
newImageComponent()ImageComponent创建新的 ImageComponent
newImageCropStyle()ImageCropStyle创建新的 ImageCropStyle
newKeyValue()KeyValue创建新的 KeyValue
newLinkPreview()LinkPreview创建新的 LinkPreview
newMaterialIcon()MaterialIcon创建新的 MaterialIcon
newNavigation()Navigation创建新的 Navigation
newNotification()Notification创建新的 Notification
newOpenLink()OpenLink创建新的 OpenLink
newOverflowMenu()OverflowMenu创建新的 OverflowMenu
newOverflowMenuItem()OverflowMenuItem创建新的 OverflowMenuItem
newSelectionInput()SelectionInput创建新的 SelectionInput
newSuggestions()Suggestions创建新的 Suggestions
newSuggestionsResponseBuilder()SuggestionsResponseBuilder创建新的 SuggestionsResponseBuilder
newSwitch()Switch创建新的 Switch
newTextButton()TextButton创建新的 TextButton
newTextInput()TextInput创建新的 TextInput
newTextParagraph()TextParagraph创建新的 TextParagraph
newTimePicker()TimePicker创建新的 TimePicker
newUniversalActionResponseBuilder()UniversalActionResponseBuilder创建新的 UniversalActionResponseBuilder
newUpdateDraftActionResponseBuilder()UpdateDraftActionResponseBuilder创建新的 UpdateDraftActionResponseBuilder
newUpdateDraftBccRecipientsAction()UpdateDraftBccRecipientsAction创建新的 UpdateDraftBccRecipientsAction
newUpdateDraftBodyAction()UpdateDraftBodyAction创建新的 UpdateDraftBodyAction
newUpdateDraftCcRecipientsAction()UpdateDraftCcRecipientsAction创建新的 UpdateDraftCcRecipientsAction
newUpdateDraftSubjectAction()UpdateDraftSubjectAction创建新的 UpdateDraftSubjectAction
newUpdateDraftToRecipientsAction()UpdateDraftToRecipientsAction创建新的 UpdateDraftToRecipientsAction
newValidation()Validation创建新的 Validation

详细文档

newAction()

创建新的 Action

返回

Action - 一个空的 Action。


newActionResponseBuilder()

创建新的 ActionResponseBuilder

返回

ActionResponseBuilder - 一个空的 ActionResponse 构建器。


newActionStatus()

创建新的 ActionStatus

仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。

const actionStatus = CardService.newActionStatus()
                         .setStatusCode(CardService.Status.OK)
                         .setUserFacingMessage('Success');

返回

ActionStatus - 空 ActionStatus。


newAttachment()

创建新的 Attachment

返回

Attachment - 空附件。


newAuthorizationAction()

创建新的 AuthorizationAction

返回

AuthorizationAction - 一个空 AuthorizationAction。


newAuthorizationException()

创建新的 AuthorizationException

返回

AuthorizationException - 一个空的 AuthorizationException。


newBorderStyle()

创建新的 BorderStyle

返回

BorderStyle - 空 BorderStyle。


newButtonSet()

创建新的 ButtonSet

返回

ButtonSet - 一个空的 ButtonSet。


newCalendarEventActionResponseBuilder()


newCardAction()

创建新的 CardAction

返回

CardAction - 空的 CardAction。


newCardBuilder()

创建新的卡片制作工具。

返回

CardBuilder - 空白卡片制作工具。


newCardHeader()

创建新的 CardHeader

返回

CardHeader - 空的 CardHeader。


newCardSection()

创建新的 CardSection

返回

CardSection - 空白的 CardSection。


newCardWithId()

创建新 CardWithId。用于在 Google Chat 消息中发送卡片。当发送多张卡片时,卡片 ID 是消息中某张卡片的唯一标识符。

仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。

const cardSection = CardService.newCardSection();
cardSection.addWidget(
    CardService.newTextParagraph().setText('This is a text paragraph widget.'),
);

const card = CardService.newCardBuilder()
                 .setHeader(CardService.newCardHeader().setTitle('Card title'))
                 .addSection(cardSection)
                 .build();

const cardWithId =
    CardService.newCardWithId().setCardId('card_id').setCard(card);

返回

CardWithId - 一个空的 CardWithId


newChatActionResponse()

创建新的 ChatActionResponse

仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。

const card = CardService.newCardBuilder()
                 .setHeader(CardService.newCardHeader().setTitle('Card title'))
                 .build();
const dialog = CardService.newDialog().setBody(card);

const dialogAction = CardService.newDialogAction().setDialog(dialog);

const chatActionResponse = CardService.newChatActionResponse()
                               .setResponseType(CardService.ResponseType.DIALOG)
                               .setDialogAction(dialogAction);

返回

ChatActionResponse - 一个空的 ChatActionResponse


newChatResponseBuilder()

创建新的 ChatResponseBuilder

仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。

const cardSection = CardService.newCardSection();
cardSection.addWidget(
    CardService.newTextParagraph().setText('This is a text paragraph widget.'),
);

const card = CardService.newCardBuilder()
                 .setHeader(CardService.newCardHeader().setTitle('Card title'))
                 .addSection(cardSection)
                 .build();

const cardWithId =
    CardService.newCardWithId().setCardId('card_id').setCard(card);

const chatResponse =
    CardService.newChatResponseBuilder().addCardsV2(cardWithId).build();

返回

ChatResponseBuilder - 一个空的 ChatResponseBuilder。


newChip()

创建新的 Chip

适用于 Google Chat 应用。在 Google Workspace 插件开发者预览版中。

const chip = CardService.newChip()
                 .setLabel('Open Link')
                 .setOpenLink(CardService.newOpenLink().setUrl(
                     'https://www.google.com'));

返回

Chip - 空条状标签。


newChipList()

创建新的 ChipList

适用于 Google Chat 应用。在 Google Workspace 插件开发者预览版中。

const chip = CardService.newChip();
// Finish building the text chip...

const chipList = CardService.newChipList()
                     .setLayout(CardService.ChipListLayout.WRAPPED)
                     .addChip(chip);

返回

ChipList - 一个空的 ChipList。


newCollapseControl()

创建新的 CollapseControl

适用于 Google Chat 应用。在 Google Workspace 插件开发者预览版中。

const collapseControl =
    CardService.newCollapseControl()
        .setHorizontalAlign(CardService.HorizontalAlignment.START)
        .setExpandButton(CardService.newTextButton().setText('Expand'))
        .setCollapseButton(CardService.newTextButton().setText('Collapse'));

返回

CollapseControl - 一个空的 CollapseControl。


newColumn()

创建新的 Column

适用于 Google Chat 应用和 Google Workspace 插件。

const columnWidget = CardService.newTextParagraph();
const column =
    CardService.newColumn()
        .setHorizontalSizeStyle(
            CardService.HorizontalSizeStyle.FILL_AVAILABLE_SPACE)
        .setHorizontalAlignment(CardService.HorizontalAlignment.CENTER)
        .setVerticalAlignment(CardService.VerticalAlignment.CENTER)
        .addWidget(columnWidget);

返回

Column - 空列。


newColumns()

创建一组新的 Columns

适用于 Google Chat 应用和 Google Workspace 插件。

const firstColumn =
    CardService.newColumn()
        .setHorizontalSizeStyle(
            CardService.HorizontalSizeStyle.FILL_AVAILABLE_SPACE)
        .setHorizontalAlignment(CardService.HorizontalAlignment.CENTER)
        .setVerticalAlignment(CardService.VerticalAlignment.CENTER);
const secondColumn =
    CardService.newColumn()
        .setHorizontalSizeStyle(
            CardService.HorizontalSizeStyle.FILL_AVAILABLE_SPACE)
        .setHorizontalAlignment(CardService.HorizontalAlignment.CENTER)
        .setVerticalAlignment(CardService.VerticalAlignment.CENTER);
const columns = CardService.newColumns()
                    .addColumn(firstColumn)
                    .addColumn(secondColumn)
                    .setWrapStyle(CardService.WrapStyle.WRAP);

返回

Columns - 一组空列。


newComposeActionResponseBuilder()

创建新的 ComposeActionResponseBuilder

返回

ComposeActionResponseBuilder - 一个空的 ComposeActionResponse 构建器。


newDatePicker()

创建新的 DatePicker

返回

DatePicker - 空的 DatePicker。


newDateTimePicker()

创建新的 DateTimePicker

返回

DateTimePicker - 空的 DateTimePicker。


newDecoratedText()

创建新的 DecoratedText

返回

DecoratedText - 空的 DecoratedText。


newDialog()

创建新的 Dialog

仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。

const card = CardService.newCardBuilder()
                 .setHeader(CardService.newCardHeader().setTitle('Card title'))
                 .build();

// Sets the card of the dialog.
const dialog = CardService.newDialog().setBody(card);

返回

Dialog - 一个空的 Dialog


newDialogAction()

创建新的 DialogAction

仅适用于 Google Chat 应用。不适用于 Google Workspace 插件。

const card = CardService.newCardBuilder()
                 .setHeader(CardService.newCardHeader().setTitle('Card title'))
                 .build();
const dialog = CardService.newDialog().setBody(card);

const dialogAction = CardService.newDialogAction().setDialog(dialog);

返回

DialogAction - 一个空的 DialogAction


newDivider()

创建新 Divider。以下示例构建了一个由分隔符分隔的 2 个段落组成的简单卡片。

function buildCard() {
  const cardSection1TextParagraph1 =
      CardService.newTextParagraph().setText('Hello world!');

  const cardSection1Divider1 = CardService.newDivider();

  const cardSection1TextParagraph2 =
      CardService.newTextParagraph().setText('Hello world!');

  const cardSection1 = CardService.newCardSection()
                           .addWidget(cardSection1TextParagraph1)
                           .addWidget(cardSection1Divider1)
                           .addWidget(cardSection1TextParagraph2);

  const card = CardService.newCardBuilder().addSection(cardSection1).build();

  return card;
}

返回

Divider - 分隔符。


newDriveItemsSelectedActionResponseBuilder()


newEditorFileScopeActionResponseBuilder()


newFixedFooter()

创建新的 FixedFooter

返回

FixedFooter - 空的 FixedFooter。


newGrid()

创建新的 Grid

返回

Grid - 空网格。


newGridItem()

创建新的 GridItem

返回

GridItem - 一个空的 GridItem。


newIconImage()

创建新的 IconImage

返回

IconImage - 空白图标图片。


newImage()

创建新的 Image

返回

Image - 空图片。


newImageButton()

创建新的 ImageButton

返回

ImageButton - 一个空的 ImageButton。


newImageComponent()

创建新的 ImageComponent

返回

ImageComponent - 一个空的 ImageComponent。


newImageCropStyle()

创建新的 ImageCropStyle

返回

ImageCropStyle - 一个空的 ImageCropStyle。


newKeyValue()

创建新的 KeyValue

返回

KeyValue - 空的 KeyValue。


newLinkPreview()

创建新的 LinkPreview

const decoratedText =
    CardService.newDecoratedText().setTopLabel('Hello').setText('Hi!');

const cardSection = CardService.newCardSection().addWidget(decoratedText);

const card = CardService.newCardBuilder().addSection(cardSection).build();

const linkPreview = CardService.newLinkPreview().setPreviewCard(card).setTitle(
    'Smart chip title');

返回

LinkPreview - 空的 LinkPreview。


newMaterialIcon()

创建新的 MaterialIcon

适用于 Google Chat 应用和 Google Workspace 插件。

const materialIcon =
    CardService.newMaterialIcon().setName('check_box').setFill(true);

const cardSection = CardService.newCardSection();
cardSection.addWidget(
    CardService.newDecoratedText()
        .setStartIcon(CardService.newIconImage().setMaterialIcon(materialIcon))
        .setText('sasha@example.com'),
);

const card = CardService.newCardBuilder()
                 .setHeader(CardService.newCardHeader().setTitle('Card Title'))
                 .addSection(cardSection)
                 .build();

返回

MaterialIcon - 空的 MaterialIcon。


newNavigation()

创建新的 Navigation

返回

Navigation - 空的 Navigation。


newNotification()

创建新的 Notification

返回

Notification - 空通知。


创建新的 OpenLink

返回

OpenLink - 空的 OpenLink。


newOverflowMenu()

创建新的 OverflowMenu

适用于 Google Chat 应用。在 Google Workspace 插件开发者预览版中。

const overflowMenuItem = CardService.newOverflowMenuItem();
// Finish building the overflow menu item...

const overflowMenu =
    CardService.newOverflowMenu().addMenuItem(overflowMenuItem);

返回

OverflowMenu - 一个空的 OverflowMenu。


newOverflowMenuItem()

创建新的 OverflowMenuItem

适用于 Google Chat 应用。在 Google Workspace 插件开发者预览版中。

const overflowMenuItem =
    CardService.newOverflowMenuItem()
        .setStartIcon(
            CardService.newIconImage().setIconUrl(
                'https://www.google.com/images/branding/googleg/1x/googleg_standard_color_64dp.png',
                ),
            )
        .setText('Open Link')
        .setOpenLink(
            CardService.newOpenLink().setUrl('https://www.google.com'));

返回

OverflowMenuItem - 一个空的 OverflowMenuItem。


newSelectionInput()

创建新的 SelectionInput

返回

SelectionInput - 一个空的 SelectionInput。


newSuggestions()

创建新的 Suggestions

返回

Suggestions - 空的“建议”。


newSuggestionsResponseBuilder()

创建新的 SuggestionsResponseBuilder

返回

SuggestionsResponseBuilder - 一个空的 SuggestionsResponse 构建器。


newSwitch()

创建新的 Switch

返回

Switch - 空 Switch。


newTextButton()

创建新的 TextButton

返回

TextButton - 一个空的 TextButton。


newTextInput()

创建新的 TextInput

返回

TextInput - 一个空的 TextInput。


newTextParagraph()

创建新的 TextParagraph

返回

TextParagraph - 空的 TextParagraph。


newTimePicker()

创建新的 TimePicker

返回

TimePicker - 一个空的 TimePicker。


newUniversalActionResponseBuilder()

创建新的 UniversalActionResponseBuilder

返回

UniversalActionResponseBuilder - 一个空的 UniversalActionResponse 构建器。


newUpdateDraftActionResponseBuilder()

创建新的 UpdateDraftActionResponseBuilder

返回

UpdateDraftActionResponseBuilder - 一个空的 UpdateDraftActionResponseBuilder。


newUpdateDraftBccRecipientsAction()

创建新的 UpdateDraftBccRecipientsAction

返回

UpdateDraftBccRecipientsAction - 一个空的 UpdateDraftBccRecipientsAction。


newUpdateDraftBodyAction()

创建新的 UpdateDraftBodyAction

返回

UpdateDraftBodyAction - 一个空的 UpdateDraftBodyAction。


newUpdateDraftCcRecipientsAction()

创建新的 UpdateDraftCcRecipientsAction

返回

UpdateDraftCcRecipientsAction - 一个空的 UpdateDraftCcRecipientsAction。


newUpdateDraftSubjectAction()

创建新的 UpdateDraftSubjectAction

返回

UpdateDraftSubjectAction - 一个空的 UpdateDraftSubjectAction。


newUpdateDraftToRecipientsAction()

创建新的 UpdateDraftToRecipientsAction

返回

UpdateDraftToRecipientsAction - 一个空的 UpdateDraftToRecipientsAction。


newValidation()

创建新的 Validation

适用于 Google Chat 应用和 Google Workspace 插件。

const validation =
    CardService.newValidation().setCharacterLimit(5).setInputType(
        CardService.InputType.EMAIL);

返回

Validation - 空验证。