Files
2026-07-13 12:20:06 +08:00

1.4 KiB
Raw Permalink Blame History

Authentication Flows (Team Chat vs Chatbot)

Zoom Team Chat integrations commonly use one of two auth models:

Team Chat API (user-level)

Use User OAuth (authorization code) when you want messages/actions to appear as a user.

  • Typical endpoints:
    • Send message (as the user): POST /v2/chat/users/me/messages
  • Typical scopes:
    • chat_message:write
    • chat_channel:read (for listing channels)

Chatbot API (bot-level)

Use client credentials when you want messages/actions to appear as a bot.

  • Typical endpoint:
    • Send bot message: POST /v2/im/chat/messages
  • Typical “scope”:
    • imchat:bot (added by enabling Chatbot feature on the app)

Decision Checklist

  • If you need to post to a channel “as a bot” and handle slash command interactions: use Chatbot API.
  • If you need to post “as the user” (and respect the users channel membership): use Team Chat API.

Common Pitfalls

  • Server-to-Server OAuth is not a fit for Zoom Team Chat chatbot features.
  • Team Chat API calls require a user token with the right scopes; “invalid access token” errors are almost always missing scopes or wrong app type.
  • OAuth URL split is easy to mix up:
    • authorize step: https://zoom.us/oauth/authorize
    • token step (all grant types): https://zoom.us/oauth/token
  • In browser demos, complete OAuth end-to-end in app (state verify -> callback -> code exchange -> token store) to avoid copy/paste mistakes.