@emulators/google

中文文档
0.13.1发布于 2026/11/09Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 24.3万

Google OAuth 2.0,OpenID Connect,以及可变的Google工作空间风格表面,用于本地Gmail,Calendar,和Drive流.

中文使用文档
文档目录13 节
  1. 安装
  2. 终点
  3. OAuth 和 OIDC
  4. 邮件
  5. 草稿
  6. 线索
  7. 标签
  8. 历史、 监视设置( S)
  9. 日历
  10. 驱动
  11. 认证
  12. 种子配置
  13. 链接

@ 模拟器/ google

Google OAuth 2.0,OpenID Connect,以及可变的Google工作空间风格表面,用于本地Gmail,Calendar,和Drive流.

部分 模拟 ——为CI和无网络沙盒提供本地出入口替换服务.

安装

npm install @emulators/google

终点

OAuth 和 OIDC

  • GET /o/oauth2/v2/auth ——授权终点
  • POST /oauth2/token - 证券交换
  • GET /oauth2/v2/userinfo 获取用户信息
  • GET /.well-known/openid-configuration - OIDC发现文件
  • GET /oauth2/v3/certs —— JSON 网络密钥集(JWKS) 与 RSA 公用密钥用于识别符验证

邮件

  • GET /gmail/v1/users/:userId/messages —— 列表信件与 q, (中文(简体) ), labelIds, (中文(简体) ), maxResults,以及 pageToken
  • GET /gmail/v1/users/:userId/messages/:id ——获取消息到 full, (中文(简体) ), metadata, (中文(简体) ), minimal,或 raw 格式
  • GET /gmail/v1/users/:userId/messages/:messageId/attachments/:id ——取附件机构
  • POST /gmail/v1/users/:userId/messages/send ——从 raw MIME 或结构化字段
  • POST /gmail/v1/users/:userId/messages/import — 导入收件箱邮件
  • POST /gmail/v1/users/:userId/messages 直接插入信息
  • POST /gmail/v1/users/:userId/messages/:id/modify 在一个信件上添加/删除标签
  • POST /gmail/v1/users/:userId/messages/batchModify ——在许多信件中添加/移动标签
  • POST /gmail/v1/users/:userId/messages/:id/trash ——垃圾信息
  • POST /gmail/v1/users/:userId/messages/:id/untrash —— 未崩溃的消息

草稿

  • GET /gmail/v1/users/:userId/drafts ——名单草稿
  • POST /gmail/v1/users/:userId/drafts - 创建草稿
  • GET /gmail/v1/users/:userId/drafts/:id - 获取草稿
  • PUT /gmail/v1/users/:userId/drafts/:id - 最新草案
  • POST /gmail/v1/users/:userId/drafts/:id/send - 发送草稿
  • DELETE /gmail/v1/users/:userId/drafts/:id - 删除草案

线索

  • GET /gmail/v1/users/:userId/threads — 列表线索
  • GET /gmail/v1/users/:userId/threads/:id - 得到线程
  • POST /gmail/v1/users/:userId/threads/:id/modify ——通过线条添加/移动标签

标签

  • GET /gmail/v1/users/:userId/labels —列表标签
  • POST /gmail/v1/users/:userId/labels ——创建标签
  • PATCH /gmail/v1/users/:userId/labels/:id ——更新标签
  • DELETE /gmail/v1/users/:userId/labels/:id 删除标签

历史、 监视设置( S)

  • GET /gmail/v1/users/:userId/history ——列表历史
  • POST /gmail/v1/users/:userId/watch 建立推动通知
  • POST /gmail/v1/users/:userId/stop - 停止催促通知
  • GET /gmail/v1/users/:userId/settings/filters ——列表过滤器
  • POST /gmail/v1/users/:userId/settings/filters ——创建过滤器
  • DELETE /gmail/v1/users/:userId/settings/filters/:id 删除过滤器
  • GET /gmail/v1/users/:userId/settings/forwardingAddresses - 列表转发地址
  • GET /gmail/v1/users/:userId/settings/sendAs - 列表作为别名发送

日历

  • GET /discovery/v1/apis/calendar/v3/rest 公共日历 v3 REST 发现文件
  • GET /calendar/v3/users/:userId/calendarList — 列表日历
  • GET /calendar/v3/calendars/:calendarId/events - 列表事件
  • POST /calendar/v3/calendars/:calendarId/events ——创建事件
  • DELETE /calendar/v3/calendars/:calendarId/events/:eventId — 删除事件
  • POST /calendar/v3/freeBusy ——免费/繁忙查询

驱动

  • GET /drive/v3/files ——列表文件
  • GET /drive/v3/files/:fileId ——获取文件元数据
  • POST /drive/v3/files ——创建文件
  • PATCH /drive/v3/files/:fileId ——更新文件元数据
  • PUT /drive/v3/files/:fileId — 更新文件内容
  • POST /upload/drive/v3/files 上传文件

认证

标准OAuth 2.0授权代码与RS256签名的OIDC标识符流. 在种子配置中配置客户端 。 该发现文件刊登了RS256和 /oauth2/v3/certs 返回用于验证已签发的ID令牌的RSA公钥.

种子配置

google:
  users:
    - email: [email protected]
      name: Test User
  oauth_clients:
    - client_id: my-client-id.apps.googleusercontent.com
      client_secret: GOCSPX-secret
      redirect_uris:
        - http://localhost:3000/api/auth/callback/google
  labels:
    - id: Label_ops
      user_email: [email protected]
      name: Ops/Review
  messages:
    - id: msg_welcome
      user_email: [email protected]
      from: [email protected]
      to: [email protected]
      subject: Welcome to the Gmail emulator
      body_text: You can now test Gmail, Calendar, and Drive flows locally.
      label_ids: [INBOX, UNREAD, CATEGORY_UPDATES]
  calendars:
    - id: primary
      user_email: [email protected]
      summary: [email protected]
      primary: true
      time_zone: UTC
  calendar_events:
    - id: evt_kickoff
      user_email: [email protected]
      calendar_id: primary
      summary: Project Kickoff
      start_date_time: 2025-01-10T09:00:00.000Z
      end_date_time: 2025-01-10T09:30:00.000Z
  drive_items:
    - id: drv_docs
      user_email: [email protected]
      name: Docs
      mime_type: application/vnd.google-apps.folder
      parent_ids: [root]

版本与发布记录

@emulators/google 共发布 19 个版本,首次发布于 2026/03/27;过去 12 个月发布了 19 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.13.1latest2026/11/094 天前
0.13.02026/10/2915 天前
0.12.32026/10/2321 天前
0.12.22026/10/1430 天前
0.12.12026/10/021 个月前
0.12.02026/09/241 个月前

关于 @emulators/google 的常见问题

@emulators/google 是什么?

Google OAuth 2.0,OpenID Connect,以及可变的Google工作空间风格表面,用于本地Gmail,Calendar,和Drive流.

如何安装 @emulators/google?

在项目目录运行 npm install @emulators/google,或使用 pnpm add / yarn add / bun add。

@emulators/google 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@emulators/google 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@emulators/google 可以商用吗?

@emulators/google 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@emulators/google 的下载量有多少?

根据 npm 官方下载统计,@emulators/google 在 2026/10/14 – 2026/11/12 这 30 天内被下载 243,499 次,日均约 8,117 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@emulators/google 还在维护吗?

最新版本 0.13.1 发布于 2026/11/09(4 天前);至今共发布 19 个版本,其中过去 12 个月发布了 19 个;首次发布于 2026/03/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。