google-chat-cards
v1.0.2
Published
Unofficial helper package to quickly build Google Chat v2 Cards for Google Chat API and webhooks.
Downloads
13
Maintainers
Readme
Google Chat Cards
This package provides a simple interface to create Google Chat Card objects using a simple chained syntax.
For example, the following creates a robust card with a header, and a section containing rich-text with an icon, and a group of buttons that link the user to some URLs:
import GoogleChatCard, { GoogleChatBuiltInIcon, GoogleChatImageType } from 'google-chat-cards';
...
let card = new GoogleChatCard()
.header('My Cool Chat Card', 'Subtitles, yes!', GoogleChatImageType.circle, 'https://placekitten.com/128/128')
.section('Information')
.decoratedText(
'Lorem <b>ipsum</b> <i>dolor<i> sit amet, <a href="https://google.com">consectetur</a> adipiscing elit.'
true, //wrap
'Fancy Text!', //top label
null, //bottom label
GoogleChatImageType.square, //icon crop
GoogleChatBuiltInIcon.airplane //built-in icon
)
.button('Search', 'https://google.com')
.button('Build', 'https://appku.com');
...
It's even easy to send your card to a Google Chat webhook!
await card.send('https://chat.googleapis.com/v1/spaces/XXXX/messages?key=XXXXXX');
To keep your card organized, split widgets with a new .section()
. You can also add a .divider()
between sections.
Supported Features
Currently this utility supports creating cards with the following widgets:
- [x] Headers (
header
) - [x] Sections (
sections
) - [x] Text Paragraphs (
textParagraph
) - [x] Rich-Text Paragraphs w/ Labels and Icons (
decoratedText
) - [x] Images (
image
) - [x] Buttons/ButtonList Linked (
button
automatically grouped in abuttonList
when added consecutively)
Future Features
The following don't currently have an interface.
Pull requests are welcome.
- [ ] Grid (
grid
) - [ ] Column Support
columnItems
)
Install
npm i google-chat-cards
#or
yarn install google-chat-cards
Building & Testing
This project has no dependencies for runtime, but does for linting npm run lint
and unit testing npm test
. To
start developing loclaly, you'll need to install the dev-dependencies (npm i
).
Public contributions are welcome.