DHTMLX Scheduler: 与 Google 日历的双 向同步(Node.js)
在本指南中,你将实现 DHTMLX Scheduler 与 Google 日历 之间的 双向同步,在一个小型 Node.js 应用中:
- 从 Google 日历加载日历和事件到 Scheduler
- 将 Scheduler 的创建/更新/删除操作推送回 Google 日历
注释
此方法实现的是通过 API 调用的 双向同步(Scheduler → 后端 → Google 日历)。它不实现 Google → Scheduler 的实时推送更新(webhook)。如果你直接在 Google 日历中修改事件,请重新加载应用(或重新加载一个日期范围)以在 Scheduler 中看到更新的数据。
你将构建:
- 一个包含 Google OAuth 2.0 的 Node.js + Express 后端(Passport)以及一个用于 Scheduler 的小型 REST API
- 一个事件映射层(Google ↔ Scheduler),包括基本的计划内事件/例外处理
- 一个通过
scheduler.createDataProcessor()连接到后端的 Scheduler 客户端
注释
完整的源代码可在 GitHub 上获取:https://github.com/DHTMLX/scheduler-google-calendar-demo。
前提条件
- Node.js 18+
- 拥有 Google Cloud Console 访问权限的 Google 账号
- 对 TypeScript 和 Express 的基本熟悉
- 访问 DHTMLX Scheduler 包(示例使用
@dhx/trial-scheduler)
演示仓库
与本指南匹配的完整可运行项目可在 GitHub 上获取:
该指南解释了关键步骤并展示了重要的集成代码。仓库是“完整可运行的参考实现”。
项目设置
在本节中,你将准备 Google OAuth 凭据、配置项目并在本地运行应用。
1) 获取项目代码
执行以下任意一种操作:
- 克隆仓库:
Terminal
git clone https://github.com/dhtmlx/scheduler-google-calendar-demo.git
cd scheduler-google-calendar-demo
如果你的项目需要从私有注册表安装 @dhx/* 包,请配置 npm:
Terminal
npm config set @dhx:registry https://npm.dhtmlx.com
2) 配置 Google Cloud(OAuth 2.0)
在此步骤中,你将创建后端用于以用户身份访问 Google 日历的 OAuth 凭据。
本指南在 Testing 模式下使用 OAuth(开发推荐)。在该模式下,只有被列为测试用户的用户才可以授权应用。
2.1 创建或选择 Google Cloud 项目
- 打开 Google Cloud Console。
- 选择一个已有项目或创建一个新项目。
2.2 启用 Google 日历 API
- 转到 APIs & Services → Library。
- 搜索 Google Calendar API。
- 点击 Enable(启用)。
2.3 配置 OAuth 同意屏幕
- 转到 APIs & Services → OAuth consent screen。
- 选择 External(对于消费型 Google 账户常见),然后点击 Create。
- 填写必填字段:
- App name(应用名称)
- User support email(用户支持邮箱)
- Developer contact email(开发者联系邮箱)
- 将 Publishing status 设置为 Testing。
- 添加 Test users:
- 添加你在开发/测试时将用于登录的 Google 账号。
注释
如果在 Testing 模式下跳过测试用户,Google 将阻止未明确添加的账户授权。