google-chatlisted
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"}}}]}}
]