跳到主要内容
知仓学习社ZHICANG

google-chat

|

联网读文件无严重或高危命中sanjay3290/ai-skills

它会碰到什么

扫了多少6 个文本文件,43 KB
它会碰到什么联网读文件
命中总数13 处
命中统计严重 0 · 高 0 · 中 9 · 低 4

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Google Chat

Lightweight Google Chat integration with standalone OAuth authentication. No MCP server required.

> ⚠️ Requires Google Workspace account. Personal Gmail accounts are not supported.

Everything is sent as the authenticated user, so treat write commands as outward-facing:

confirm the exact text with the user before posting to a space, and never send to a channel

the user did not name.

First-Time Setup

pip install -r requirements.txt
python scripts/auth.py login     # opens browser
python scripts/auth.py status    # verify
python scripts/auth.py logout

Commands

All operations via scripts/chat.py. Auto-authenticates on first use if not logged in.

Reading

python scripts/chat.py get-messages spaces/AAAA123 --limit 10
python scripts/chat.py get-messages spaces/AAAA123 --limit 10 --raw   # full JSON
python scripts/chat.py get-message spaces/AAAA123/messages/XYZ
python scripts/chat.py list-threads spaces/AAAA123
python scripts/chat.py list-spaces
python scripts/chat.py find-space "Project Alpha"    # ignores punctuation/spacing
python scripts/chat.py list-members spaces/AAAA123

Read output is compact by default — one block per message with its timestamp, sender, text

and resource name. That is roughly 14x smaller than the raw API payload, which matters when

an agent is paying for every token it reads. Use --raw when you need the full JSON.

Writing

python scripts/chat.py send-message spaces/AAAA123 "Hello team!"
python scripts/chat.py send-dm user@example.com "Hey, quick question..."
python scripts/chat.py reply-in-thread spaces/AAAA123 spaces/AAAA123/threads/T "Following up."
python scripts/chat.py send-media spaces/AAAA123 "Latest mocks" --file a.png --file b.png
python scripts/chat.py edit-message spaces/AAAA123/messages/XYZ "Corrected text."
python scripts/chat.py delete-message spaces/AAAA123/messages/XYZ
python scripts/chat.py delete-message spaces/AAAA123/messages/XYZ --force   # has thread replies
python scripts/chat.py add-reaction spaces/AAAA123/messages/XYZ 👍
python scripts/chat.py setup-space "New Project" user1@example.com user2@example.com
python scripts/chat.py find-dm user@example.com

Add --dry-run to any write command to print the request instead of sending it. Use it when

wiring up or testing a flow so nothing lands in a real channel. (For send-dm it reports the

resolved recipient rather than the DM space, since resolving that needs a live call.)

Editing and deleting

send-message, send-dm and send-media return the created message's name

(spaces/X/messages/Y) — that is what edit-message, delete-message and add-reaction

take. You can only edit or delete messages you sent. To fix an older message, find its

name with get-messages first.

Attachments

send-media takes a repeatable --file. Google Chat accepts several attachments on one

message only when every attachment is media (image or video); a mixed batch is split

automatically into one message per file, with the caption on the first. --attachment is

still accepted as an alias for a single --file.

Optional aliases

Typing full email addresses and spaces/AAAA... IDs is tedious, and having an agent call

list-spaces to find a channel it uses daily is slow. Copy directory.example.json to

directory.json and map short names:

{
  "users":  { "alex": "alex@example.com" },
  "spaces": { "team": { "id": "spaces/AAAAxxxxxxx", "name": "My Team" } }
}

Then send-message team "Deploying now" and send-dm alex "..." both resolve locally, with

no API call. Full emails and spaces/... names keep working everywhere.

directory.json is personal and gitignored. It is entirely optional — without it every

command still works, and an unresolvable alias fails immediately with the list of valid ones

rather than silently falling back to a scan.

Message formatting

Chat supports bold, _italic_, ~strike~, ` code `, triple-backtick code blocks, and

<url|label> links. It does not support Markdown headings, tables, or []( ) links —

they render literally.

Token Management

Tokens stored securely using the system keyring:

  • macOS: Keychain
  • Windows: Windows Credential Locker
  • Linux: Secret Service API (GNOME Keyring, KDE Wallet, etc.)

Service name: google-chat-skill-oauth. Expired tokens refresh automatically.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 424
本站分层T2
该仓技能数24
原文件路径skills/google-chat/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 24 个技能