← ClaudeAtlas

google-chatlisted

Send and receive Google Chat messages without an OAuth consent flow. Sending uses incoming webhooks (no credentials beyond a webhook URL); receiving uses a service account with app authentication. Use when the user wants to post to Google Chat, send build/deploy/monitoring notifications, or read recent messages from a Chat space.
ohdaepyo-hash/google-chat-skill · ★ 0 · AI & Automation · score 67
Install: claude install-skill ohdaepyo-hash/google-chat-skill
# Google Chat (No OAuth) Send messages to a Google Chat space through an incoming webhook, and read messages back with a service account — no OAuth consent flow anywhere. ## Sending ### Setup (one-time, done by the user) 1. In Google Chat, open the target space → click the space name → **Apps & integrations** → **Webhooks** → **Add webhook**. 2. Copy the webhook URL and export it as an environment variable: ```bash export GOOGLE_CHAT_WEBHOOK_URL="https://chat.googleapis.com/v1/spaces/XXXX/messages?key=...&token=..." ``` The URL contains a secret token — never hardcode it in files or commit it. ### Send a text message ```bash python3 scripts/send.py --text "Deploy finished ✅" ``` ### Reply in a thread A stable `--thread-key` groups messages into the same thread: ```bash python3 scripts/send.py --text "build #124 passed" --thread-key ci-builds ``` ### Send a card Write a [cardsV2](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards) payload to a JSON file and: ```bash python3 scripts/send.py --card-file card.json --text "fallback text" ``` Example `card.json`: ```json { "cardsV2": [{ "cardId": "status", "card": { "header": {"title": "Deploy", "subtitle": "production"}, "sections": [{ "widgets": [ {"decoratedText": {"topLabel": "Status", "text": "<b>Success</b>"}}, {"buttonList": {"buttons": [{"text": "Open logs", "onClick": {"openLink": {"url": "https://example.com/logs"}}}]}} ]