TypeScript SDK

SDK v5 chegou, redesenhado

O TypeScript SDK é o pacote oficialmente suportado que permite aos desenvolvedores integrar com a API do Meeting BaaS - a interface universal para automatizar reuniões no Google Meet, Zoom e Microsoft Teams.

🚀 Novidade na v5.0.0: Redesenho arquitetural completo com suporte aprimorado a TypeScript, melhor tratamento de erros e experiência do desenvolvedor aprimorada. Consulte o guia de migração para instruções de atualização.

  • Segurança de tipos completa com definições TypeScript abrangentes
  • Atualizações automáticas sincronizadas com nossa especificação OpenAPI
  • Acesso simplificado a todas as capacidades de automação de reuniões
  • Consistência entre plataformas para todos os provedores de reunião suportados
  • Tratamento de erros aprimorado com respostas de união discriminada
  • Validação de parâmetros com validação automática de schema Zod
  • Bundle tree-shakeable para melhor desempenho

Principais Funcionalidades

  • BaaS API Client: Funções fortemente tipadas para interagir com a API do Meeting BaaS
  • Gerenciamento de Bot: Crie, ingresse e gerencie bots de reunião em diferentes plataformas
  • Integração de Calendário: Conecte calendários e agende automaticamente gravações de reuniões
  • Cobertura Completa da API: Acesso a todos os endpoints da API do Meeting BaaS
  • Suporte a TypeScript: Definições TypeScript completas para todas as APIs
  • Tratamento de Erros Aprimorado: Respostas de união discriminada para tratamento de erros com segurança de tipos
  • Validação de Parâmetros: Validação automática de schema Zod para todas as chamadas de API
  • Tree-shakeable: Importe apenas os métodos que você precisa
  • Testes Abrangentes: Cobertura de testes completa com mock MSW

Requisitos do Sistema

  • Node.js: Versão 18.0.0 ou superior
  • Gerenciadores de Pacotes: npm, yarn ou pnpm

Versões de Node.js Testadas: 18, 19, 20, 21, 22

Instalação

Instale o SDK do Meeting BaaS usando seu gerenciador de pacotes preferido:

npm-install.sh
npm install @meeting-baas/sdk
yarn-install.sh
yarn add @meeting-baas/sdk
pnpm-install.sh
pnpm add @meeting-baas/sdk

Início Rápido

Crie uma nova instância do cliente BaaS com sua chave de API:

basic-usage.ts
import { createBaasClient } from "@meeting-baas/sdk";

// Create a BaaS client
const client = createBaasClient({
  api_key: "your-api-key", // Get yours at https://meetingbaas.com
});

async function example() {
  // Join a meeting
  const { success, data, error } = await client.joinMeeting({
    bot_name: "Meeting Assistant",
    meeting_url: "https://meet.google.com/abc-def-ghi",
    reserved: true,
  });
  
  if (success) {
    console.log("Bot joined successfully:", data.bot_id);
  } else {
    console.error("Error joining meeting:", error);
  }
}
advanced-usage.ts
import { createBaasClient } from "@meeting-baas/sdk";

const client = createBaasClient({
  api_key: "your-api-key",
  timeout: 60000
});

async function comprehensiveExample() {
  // Join a meeting with all options
  const joinResult = await client.joinMeeting({
    meeting_url: "https://meet.google.com/abc-defg-hij",
    bot_name: "Advanced Test Bot",
    reserved: false,
    bot_image: "https://example.com/bot-image.jpg",
    enter_message: "Hello from the advanced test bot!",
    extra: { test_id: "advanced-example" },
    recording_mode: "speaker_view",
    speech_to_text: { provider: "Gladia" },
    webhook_url: "https://example.com/webhook"
  });

  if (joinResult.success) {
    const botId = joinResult.data.bot_id;
    console.log("Bot joined with ID:", botId);

    // Get meeting data with transcripts
    const meetingDataResult = await client.getMeetingData({
      bot_id: botId,
      include_transcripts: true
    });

    if (meetingDataResult.success) {
      console.log("Meeting duration:", meetingDataResult.data.duration);
    }
  }
}

Integração de Calendário

O SDK oferece capacidades completas de integração de calendário:

calendar-integration.ts
import { createBaasClient } from "@meeting-baas/sdk";

const client = createBaasClient({
  api_key: "your-api-key",
});

// Create a calendar integration
const calendarResult = await client.createCalendar({
  oauth_client_id: "your-oauth-client-id",
  oauth_client_secret: "your-oauth-client-secret",
  oauth_refresh_token: "your-oauth-refresh-token",
  platform: "Google",
});

if (calendarResult.success) {
  console.log("Calendar created:", calendarResult.data);

  // List all calendars
  const calendarsResult = await client.listCalendars();
  if (calendarsResult.success) {
    console.log("All calendars:", calendarsResult.data);
  }

  // List events from a calendar
  const eventsResult = await client.listCalendarEvents({
    calendar_id: calendarResult.data.calendar.uuid,
    start_date_gte: new Date().toISOString(),
    start_date_lte: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString()
  });
  
  if (eventsResult.success) {
    console.log("Events:", eventsResult.data);
  }
}

Tratamento de Erros

O SDK oferece tratamento de erros com segurança de tipos por meio de respostas de união discriminada:

error-handling.ts
import { createBaasClient } from "@meeting-baas/sdk";

const client = createBaasClient({
  api_key: "your-api-key",
});

const result = await client.joinMeeting({
  meeting_url: "https://meet.google.com/abc-def-ghi",
  bot_name: "My Bot",
  reserved: false
});

if (result.success) {
  // TypeScript knows result.data is JoinResponse
  console.log("Bot ID:", result.data.bot_id);
} else {
  // TypeScript knows result.error is ZodError | Error
  if (result.error instanceof ZodError) {
    console.error("Validation error:", result.error.errors);
  } else {
    console.error("API error:", result.error.message);
  }
}

Migração da v4.x

Se você está atualizando da v4.x, consulte o guia de migração para instruções detalhadas de migração.

Meeting BaaS API Preview Features

Recursos