日历 API

同步日历并自动化会议录制

日历 API 允许你自动同步 Outlook 和 Google Workspace 的日历,从而向已安排的会议部署 bot。

这使以下操作变得简单:

  • 无需人工干预,自动录制会议并参与其中
  • 同时连接 Google Workspace 和 Microsoft Outlook 日历
  • 当日历事件发生变更时,实时接收更新
  • 应用业务逻辑来决定录制哪些会议

该 API 遵循简单的模式,允许你连接日历提供商、列出并管理事件,以及在会议发生时自动调度录制 bot。

核心功能

  • 多日历支持: 同时连接 Google Workspace 和 Microsoft Outlook 日历
  • OAuth 认证: 使用 OAuth 与日历提供商进行安全集成
  • 实时 Webhook: 当日历事件发生变更时,立即接收通知
  • 选择性录制: 实现自定义业务规则,决定录制哪些会议
  • Bot 配置: 为每场会议自定义录制设置
  • 循环会议支持: 高效处理循环会议系列

实施流程

  • 认证设置: 使用 OAuth 凭据连接日历
  • 日历选择: 选择要同步的日历
  • 事件管理: 列出、筛选并处理日历事件
  • 录制配置: 为特定会议调度 bot
  • Webhook 处理: 接收并处理实时日历更新
  • 维护: 处理凭据刷新和错误恢复

API 使用

日历 API 是 Meeting BaaS 平台的一部分,提供以下 endpoint:

  • 创建和管理日历集成
  • 列出并筛选日历事件
  • 为特定会议调度录制 bot
  • 管理用于实时更新的 webhook

该 API 已完整记录文档,支持标准 REST 操作,使用 JSON payload。认证方式为:使用你的 Meeting BaaS API key,以及用于访问日历提供商的 OAuth token。

API 使用示例

以下示例演示如何使用日历 API 为团队会议调度 bot:

此代码演示了如何与日历 API 交互以检索事件并调度录制 bot。

calendars_api.ts
import { createBaasClient } from "@meeting-baas/sdk";
 
const client = createBaasClient({
  api_key: "your-api-key",
  timeout: 30000 // optional, default: 30000
});

const { success, data, error } = 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",
  raw_calendar_id: "optional-calendar-id"
});
 
if (success) {
  console.log("Calendar created:", data.calendar.name);
  console.log("Calendar UUID:", data.calendar.uuid);
} else {
  console.error("Error creating calendar:", error);
}
create_calendar.sh
curl -X POST "https://api.meetingbaas.com/calendars/" \
  -H "x-meeting-baas-api-key: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "oauth_client_id": "string",
    "oauth_client_secret": "string",
    "oauth_refresh_token": "string",
    "platform": "Google",
    "raw_calendar_id": "string"
  }'

列出日历事件

以下是从已连接日历中检索事件的方法:

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

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

// List events from a specific calendar
const { success, data, error } = await client.listCalendarEvents({
  calendar_uuid: "your-calendar-uuid",
  start_time: "2024-01-01T00:00:00Z",
  end_time: "2024-01-31T23:59:59Z"
});

if (success) {
  console.log("Events found:", data.events.length);
  data.events.forEach(event => {
    console.log(`- ${event.summary} (${event.start_time})`);
  });
} else {
  console.error("Error listing events:", error);
}

为事件调度录制

自动为即将举行的会议调度 bot:

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

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

// Schedule recording for a specific calendar event
const { success, data, error } = await client.scheduleRecording({
  calendar_uuid: "your-calendar-uuid",
  event_id: "event-id-from-calendar",
  bot_config: {
    bot_name: "Meeting Recorder",
    recording_mode: "speaker_view",
    speech_to_text: {
      provider: "Default"
    }
  }
});

if (success) {
  console.log("Recording scheduled:", data.scheduled_recording.id);
} else {
  console.error("Error scheduling recording:", error);
}
Meeting BaaS API Preview Features

开始使用

准备好通过日历集成自动化你的会议录制了吗?请查阅我们的完整文档: