Class CardService

CardService

CardService 可让您创建在各种 Google 产品和服务中使用的通用卡片 可扩展产品,例如 Google Workspace 插件

以下是插件卡片的示例。

return CardService.newCardBuilder()
         .setHeader(CardService.newCardHeader().setTitle("CardTitle"))
         .build();

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

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();
}

“聊天应用”卡片示例。

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 枚举。
ComposedEmailTypeComposedEmailTypeComposedEmailType 枚举。
ContentTypeContentTypeContentType 枚举。
GridItemLayoutGridItemLayoutGridItemLayout 枚举。
HorizontalAlignmentHorizontalAlignmentHorizontalAlignment 枚举。
IconIconIcon 枚举。
ImageCropTypeImageCropTypeImageCropType 枚举。
ImageStyleImageStyleImageStyle 枚举。
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创建新的 CardBuilder
newCardHeader()CardHeader创建新的 CardHeader
newCardSection()CardSection创建新的 CardSection
newCardWithId()CardWithId创建新的 CardWithId
newChatActionResponse()ChatActionResponse创建新的 ChatActionResponse
newChatResponseBuilder()ChatResponseBuilder创建新的 ChatResponseBuilder
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
newNavigation()Navigation创建新的 Navigation
newNotification()Notification创建新的 Notification
newOpenLink()OpenLink创建新的 OpenLink
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

返回

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。


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(column)
    .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 个段落的简单卡片 多个 IP 地址

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

    let cardSection1Divider1 = CardService.newDivider();

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

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

    let 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 - 空键值对。


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。


newNavigation()

创建新的 Navigation

返回

Navigation - 空的 Navigation。


newNotification()

创建新的 Notification

返回

Notification - 空通知。


创建新的 OpenLink

返回

OpenLink - 空的 OpenLink。


newSelectionInput()

创建新的 SelectionInput

返回

SelectionInput - 空的 SelectionInput。


newSuggestions()

创建新的 Suggestions

返回

Suggestions - 空建议。


newSuggestionsResponseBuilder()

创建新的 SuggestionsResponseBuilder

返回

SuggestionsResponseBuilder - 一个空的 RecommendationsResponse 构建器。


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 - 空验证。