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();
屬性
屬性 | 類型 | 說明 |
---|---|---|
BorderType | BorderType | BorderType 列舉。 |
ComposedEmailType | ComposedEmailType | ComposedEmailType 列舉。 |
ContentType | ContentType | ContentType 列舉。 |
GridItemLayout | GridItemLayout | GridItemLayout 列舉。 |
HorizontalAlignment | HorizontalAlignment | HorizontalAlignment 列舉。 |
Icon | Icon | Icon 列舉。 |
ImageCropType | ImageCropType | ImageCropType 列舉。 |
ImageStyle | ImageStyle | ImageStyle 列舉。 |
LoadIndicator | LoadIndicator | LoadIndicator 列舉。 |
OnClose | OnClose | OnClose 列舉。 |
OpenAs | OpenAs | OpenAs 列舉。 |
SelectionInputType | SelectionInputType | SelectionInputType 列舉。 |
TextButtonStyle | TextButtonStyle | TextButtonStyle 列舉。 |
UpdateDraftBodyType | UpdateDraftBodyType | UpdateDraftBodyType 列舉。 |
方法
內容詳盡的說明文件
newActionResponseBuilder()
newActionStatus()
建立新的 ActionStatus
。
僅適用於 Google Chat 應用程式。不適用於 Google Workspace 外掛程式。
const actionStatus = CardService.newActionStatus() .setStatusCode(CardService.Status.OK) .setUserFacingMessage('Success');
回攻員
ActionStatus
— 空白的 ActionStatus。
newAttachment()
newAuthorizationAction()
newAuthorizationException()
newBorderStyle()
newCalendarEventActionResponseBuilder()
newCardAction()
newCardBuilder()
newCardHeader()
newCardSection()
newCardWithId()
建立新的 CardWithId
。這會用來在 Google Chat 訊息中傳送卡片。卡片 ID 是傳送多張卡片時,訊息中特定資訊卡的專屬 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);
回攻員
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。
newComposeActionResponseBuilder()
建立新的 ComposeActionResponseBuilder
。
回攻員
ComposeActionResponseBuilder
— 空白的 ComposeActionResponse 建構工具。
newDatePicker()
newDateTimePicker()
newDecoratedText()
newDialog()
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() { 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()
newImageButton()
newImageComponent()
newImageCropStyle()
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。
newNotification()
newSelectionInput()
newSuggestions()
newSuggestionsResponseBuilder()
newTextButton()
newTextParagraph()
newTimePicker()
newUniversalActionResponseBuilder()
建立新的 UniversalActionResponseBuilder
。
回攻員
UniversalActionResponseBuilder
— 空白的 UniversalActionResponse 建構工具。
newUpdateDraftActionResponseBuilder()
建立新的 UpdateDraftActionResponseBuilder
。
回攻員
UpdateDraftActionResponseBuilder
— 空白的 UpdateDraftActionResponseBuilder。
newUpdateDraftBccRecipientsAction()
建立新的 UpdateDraftBccRecipientsAction
;
回攻員
UpdateDraftBccRecipientsAction
:空白的 UpdateDraftBccRecipientsAction。
newUpdateDraftBodyAction()
newUpdateDraftCcRecipientsAction()
建立新的 UpdateDraftCcRecipientsAction
。
回攻員
UpdateDraftCcRecipientsAction
— 空白的 UpdateDraftCcRecipientsAction。
newUpdateDraftSubjectAction()
newUpdateDraftToRecipientsAction()
建立新的 UpdateDraftToRecipientsAction
。
回攻員
UpdateDraftToRecipientsAction
:空白的 UpdateDraftToRecipientsAction。