Skill 139 · Build Zoom Team Chat App
Subchapter 139.32
RUNBOOK.mdMarkdown3 KBView on GitHub
Use this before deep debugging. It catches the most common Team Chat failures fast.
SKILL.md.SKILL.md is also a navigation convention for larger skill docs./v2/chat/users/.../v2/im/chat/messagesIf this is wrong, everything else will fail.
https://zoom.us/oauth/authorizehttps://zoom.us/oauth/tokenIf token requests hit /oauth/token, expect 404/HTML.
If credentials are split by mode, verify your server loads the actual files at runtime:
project/team-chat-api/.envproject/chatbot-api/.envDo not assume root .env is enough.
/team-chat/user-demo/team-chat/bot-demo/team-chat/api/*If browser calls old routes (/api/channel/*) and gets 404, either update frontend or keep compatibility routes.
Use backend probes before browser debugging.
TEAM_CHAT_BASE_URL="http://YOUR_HOST:YOUR_PORT"
curl -sS "$TEAM_CHAT_BASE_URL/team-chat/api/config"
curl -sS -i "$TEAM_CHAT_BASE_URL/team-chat/api/bot/token"
curl -sS -i "$TEAM_CHAT_BASE_URL/team-chat/api/channel/list"Expected:
api/config shows required flags as configured.api/bot/token should return JSON (200 or actionable 4xx), never HTML 404 page.api/channel/list returns validation errors or data, not generic 404.ERR_BLOCKED_BY_CLIENT usually means extension/adblock/privacy filter interference.
For user-demo, avoid manual copy/paste flow:
state.state and exchanges code server-side.If callback returns but token is missing, focus on state validation and persistence path.
/oauth/token), then proxy path.