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

1.3 KiB

Getting Started Pattern (Single Module)

This pattern shows a minimal Rivet bootstrap for Team Chat with OAuth installation support.

import { TeamChatClient } from "@zoom/rivet/teamchat";

(async () => {
  const teamchatClient = new TeamChatClient({
    clientId: process.env.RIVET_CLIENT_ID,
    clientSecret: process.env.RIVET_CLIENT_SECRET,
    webhooksSecretToken: process.env.RIVET_WEBHOOK_SECRET_TOKEN,
    installerOptions: {
      redirectUri: process.env.RIVET_REDIRECT_URI,
      stateStore: process.env.RIVET_STATE_STORE_SECRET,
    },
    port: Number(process.env.RIVET_PORT || 8080),
  });

  teamchatClient.webEventConsumer.event("chat_message.sent", ({ payload }) => {
    console.log("event", payload);
  });

  const server = await teamchatClient.start();
  console.log("rivet server", server.address());
})();

Required Marketplace Wiring

  • Add endpoint URL to event subscription with /zoom/events suffix.
  • Ensure OAuth redirect URI exactly matches installerOptions.redirectUri + callback path behavior.
  • Include all scopes needed by endpoints.* calls.

Common Extension

Add API calls with typed wrappers:

const channels = await teamchatClient.endpoints.chatChannels.listUsersChannels({
  path: { userId: "me" },
});