Class ImageButton

ImageButton

A ImageButton with an image displayed on it.

Available for Google Workspace Add-ons and Google Chat apps.

const imageButton =
    CardService.newImageButton()
        .setAltText('An image button with an airplane icon.')
        .setIcon(CardService.Icon.AIRPLANE)
        .setOpenLink(CardService.newOpenLink().setUrl('https://airplane.com'));

Methods

MethodReturn typeBrief description
setAltText(altText)ImageButtonSets the alternative text of the button for accessibility.
setAuthorizationAction(action)ImageButtonSets an authorization action that opens a URL to the authorization flow when the object is clicked.
setComposeAction(action, composedEmailType)ImageButtonSets an action that composes a draft email when the object is clicked.
setIcon(icon)ImageButtonSets a predefined Icon to display on the button.
setIconUrl(url)ImageButtonSets the URL of an image to use as this button's icon.
setImageButtonStyle(imageButtonStyle)ImageButtonSets the button style.
setMaterialIcon(icon)ImageButtonSets the material design icon.
setOnClickAction(action)ImageButtonSets an action that executes when the object is clicked.
setOnClickOpenLinkAction(action)ImageButtonSets an action that opens a URL in a tab when the object is clicked.
setOpenLink(openLink)ImageButtonSets a URL to be opened when the object is clicked.
setOverflowMenu(menu)ImageButtonSets a pop-up menu to be opened when the object is clicked.

Detailed documentation

setAltText(altText)

Sets the alternative text of the button for accessibility. Required.

Parameters

NameTypeDescription
altTextStringThe alternative text to assign to this button.

Return

ImageButton — This object, for chaining.


setAuthorizationAction(action)

Sets an authorization action that opens a URL to the authorization flow when the object is clicked. This opens the URL in a new window. When the user finishes the authorization flow and returns to the application, the add-on reloads.

A UI object can only have one of setOpenLink(openLink), setOnClickAction(action), setOnClickOpenLinkAction(action), setAuthorizationAction(action), or setComposeAction(action, composedEmailType) set.

// ...

const action = CardService.newAuthorizationAction().setAuthorizationUrl('url');
CardService.newTextButton().setText('Authorize').setAuthorizationAction(action);

Parameters

NameTypeDescription
actionAuthorizationActionThe object that specifies the authorization action to take when this element is clicked.

Return

ImageButton — This object, for chaining.


setComposeAction(action, composedEmailType)

Sets an action that composes a draft email when the object is clicked. A UI object can only have one of setOpenLink(openLink), setOnClickAction(action), setOnClickOpenLinkAction(action), setAuthorizationAction(action), or setComposeAction(action, composedEmailType) set.

The Action parameter must specify a callback function that returns a ComposeActionResponse object configured using ComposeActionResponseBuilder.setGmailDraft(draft).

// ...

const action = CardService.newAction().setFunctionName('composeEmailCallback');
CardService.newTextButton()
    .setText('Compose Email')
    .setComposeAction(action, CardService.ComposedEmailType.REPLY_AS_DRAFT);

// ...

function composeEmailCallback() {
  const thread = GmailApp.getThreadById(e.threadId);
  const draft = thread.createDraftReply('This is a reply');
  return CardService.newComposeActionResponseBuilder()
      .setGmailDraft(draft)
      .build();
}

Parameters

NameTypeDescription
actionActionThe object that specifies the compose action to take when this element is clicked.
composedEmailTypeComposedEmailTypeAn enum value that specifies whether the composed draft is a standalone or reply draft.

Return

ImageButton — This object, for chaining.


setIcon(icon)

Sets a predefined Icon to display on the button. Either this or setIconUrl(url) must be used to define the button image.

Parameters

NameTypeDescription
iconIconOne of the predefined Icon values.

Return

ImageButton — This object, for chaining.


setIconUrl(url)

Sets the URL of an image to use as this button's icon. Either this or setIcon(icon) must be used to define the button image.

Parameters

NameTypeDescription
urlStringThe URL address of a hosted image to use as this button's icon.

Return

ImageButton — This object, for chaining.


setImageButtonStyle(imageButtonStyle)

Sets the button style. If unset, it defaults to ImageButtonStyle.BORDERLESS button.

Only available for Google Chat apps. Not available for Google Workspace Add-ons.

const imageButton = CardService.newImageButton().setImageButtonStyle(
    CardService.ImageButtonStyle.BORDERLESS,
);

Parameters

NameTypeDescription
imageButtonStyleImageButtonStyleThe button style.

Return

ImageButton — This object, for chaining.


setMaterialIcon(icon)

Sets the material design icon.

const imageButton = CardService.newImageButton().setMaterialIcon(
    CardService.newMaterialIcon().setName('search'),
);

Parameters

NameTypeDescription
iconMaterialIconThe material design icon.

Return

ImageButton — This object, for chaining.


setOnClickAction(action)

Sets an action that executes when the object is clicked. A UI object can only have one of setOpenLink(openLink), setOnClickAction(action), setOnClickOpenLinkAction(action), setAuthorizationAction(action), or setComposeAction(action, composedEmailType) set.

The Action parameter must specify a callback function that returns a ActionResponse object.

// ...

const action = CardService.newAction().setFunctionName('notificationCallback');
CardService.newTextButton()
    .setText('Create notification')
    .setOnClickAction(action);

// ...

function notificationCallback() {
  return CardService.newActionResponseBuilder()
      .setNotification(
          CardService.newNotification().setText('Some info to display to user'),
          )
      .build();
}

Parameters

NameTypeDescription
actionActionThe action to take when this element is clicked.

Return

ImageButton — This object, for chaining.


setOnClickOpenLinkAction(action)

Sets an action that opens a URL in a tab when the object is clicked. Use this function when the URL needs to be built or when you need to take other actions in addition to creating the OpenLink object. A UI object can only have one of setOpenLink(openLink), setOnClickAction(action), setOnClickOpenLinkAction(action), setAuthorizationAction(action), or setComposeAction(action, composedEmailType) set.

The Action parameter must specify a callback function that returns a ActionResponse object configured using ActionResponseBuilder.setOpenLink(openLink).

// ...

const action = CardService.newAction().setFunctionName('openLinkCallback');
CardService.newTextButton()
    .setText('Open Link')
    .setOnClickOpenLinkAction(action);

// ...

function openLinkCallback() {
  return CardService.newActionResponseBuilder()
      .setOpenLink(CardService.newOpenLink().setUrl('https://www.google.com'))
      .build();
}

Parameters

NameTypeDescription
actionActionThe object that specifies the open link action to take when this element is clicked.

Return

ImageButton — This object, for chaining.


Sets a URL to be opened when the object is clicked. Use this function when the URL is already known and only needs to be opened. A UI object can only have one of setOpenLink(openLink), setOnClickAction(action), setOnClickOpenLinkAction(action), setAuthorizationAction(action), or setComposeAction(action, composedEmailType) set.

Parameters

NameTypeDescription
openLinkOpenLinkAn OpenLink object describing the URL to open.

Return

ImageButton — This object, for chaining.


setOverflowMenu(menu)

Sets a pop-up menu to be opened when the object is clicked. Each item in the menu can specify an action to be triggered when clicked. Nested menus are not supported, actions for menu items should not specify an overflow menu.

Only available for Google Chat apps. Not available for Google Workspace Add-ons.

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'));

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

Parameters

NameTypeDescription
menuOverflowMenuThe object that specifies the overflow menu to display when this element is clicked.

Return

ImageButton — This object, for chaining.