zoom-meeting-admin

Polar Sponsor
爱发电 赞助
.NET 9.0

通过 Server-to-Server OAuth REST 脚本管理 Zoom 会议、云录制及账户用户。当用户需要列出、查看、创建或删除已安排的 Zoom 会议;查询某用户的云录制内容;或查找账户内的用户时,可使用此技能。支持的操作被限制在固定列表内(包括:list_meeting、get_meeting、create_meeting、delete_meeting、get_user、list_user、list_recordings),该脚本**不支持任意 Zoom API 调用**。`create_m

缩放服务器对服务器 OAuth REST APIQQ 技能 & 脚本/zoom-s2s.py 缩放服务器对服务器 OAuth REST API, 不实现" 通用

功能概述

缩放服务器对服务器 OAuth REST APIQQ 技能 & 脚本/zoom-s2s.py 缩放服务器对服务器 OAuth REST API, 不实现" 通用是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Zoom Server-to-Server OAuth REST API

权限与约束

本 Skill 通过 scripts/zoom-s2s.py 调用 Zoom Server-to-Server OAuth REST API,不实现"通用 REST 代理"。

  • 声明的工具:Bash(python3:*)(执行 scripts/zoom-s2s.py)、Bash(ls:*) / Bash(cat:*)(查看脚本输出与缓存)、Read(读取凭证文件与文档)。
  • 网络访问:向 https://zoom.us/oauth/token 与 https://api.zoom.us/v2/* 发起 HTTPS 请求,传输头包含 Authorization: Bearer 。
  • 文件写入:在 ~/.zoom-s2s-token.json 缓存访问令牌(已自动 chmod 600)。
  • 凭证读取:从仓库根目录的 .env 读取 ZOOM_ACCOUNT_ID / ZOOM_CLIENT_ID / ZOOM_CLIENT_SECRET / ZOOM_USER_ID。
  • 允许的 Action(白名单)——禁止构造任意 Zoom REST 请求或调用未列出的端点:
    • 会议:list_meetings / get_meeting / create_meeting / delete_meeting
    • 用户:get_user / list_users
    • 录像:recordings
  • 越权防护:脚本未导出 api_call 给上层调用;不得通过修改脚本、注入参数、拼接 URL 等方式旁路调用白名单外的 Zoom 端点(如 DELETE /users/{id}、PATCH /accounts/{id} 等高风险端点)。
  • 强人类确认:create_meeting 与 delete_meeting 在执行前必须获得用户显式确认;delete_meeting 命令还需附加 --yes 参数。

凭证配置

在 .env 文件中配置(仅 chmod 600,不要提交到任何 Git 仓库):

ZOOM_ACCOUNT_ID=你的AccountID
ZOOM_CLIENT_ID=你的ClientID
ZOOM_CLIENT_SECRET=你的ClientSecret
ZOOM_USER_ID=你的用户邮箱或user_id

⚠️ 完整的安全规范见下一节 ## 凭证安全。

Token 获取方式:Server-to-Server OAuth,机器对机器,无需用户交互授权。

凭证安全

.env 中的 ZOOM_CLIENT_SECRET 是长期有效的账户级凭据,等同于账户管理员口令。必须遵守:

  • 加入 .gitignore:本仓库 .gitignore 已包含 .env;同步确保 IDE、备份工具、文件同步(iCloud / Dropbox / OneDrive / 坚果云)不会自动上传该文件。
  • 限制文件权限:chmod 600 .env;scripts/zoom-s2s.py 缓存的 ~/.zoom-s2s-token.json 同样敏感(已自动 chmod 600),不要复制到剪贴板、聊天窗口、终端截图、报错工单、AI 对话上下文或第三方日志服务。
  • 不要在共享环境复用:CI runner、公用跳板机、容器镜像、共享开发机中复用同一份凭据 ≈ 凭据公开。Account ID + Client ID + Client Secret 三元组可换得 1 小时有效的访问令牌。
  • 最小权限:按 ## 最小权限配置建议 表按需开启 Scope;不需要的 Action 不要勾选对应权限;delete_meeting 之外的写权限(meeting:write:update、user:write:*、account:write:*)默认不要开。
  • 独立 App:为此 Skill 单独创建一个 Zoom Server-to-Server App,不要复用其他业务 App 的凭据;一旦泄露,旋转该 App 的凭据即可,不影响其他业务。
  • 凭据泄露应急:在 Zoom Marketplace 删除该 App → 重新创建并轮换 ACCOUNT_ID / CLIENT_ID / CLIENT_SECRET / USER_ID 四项 → rm -f ~/.zoom-s2s-token.json 强制下次重新认证 → 复盘泄露路径。

核心脚本

scripts/zoom-s2s.py — 纯 Python,无外部依赖,兼容 Python 3.7+。

cd ~/.agents/skills/zoom-meeting-admin/scripts

# 获取帮助
python3 zoom-s2s.py help

# 列出即将到来的会议
python3 zoom-s2s.py list_meetings   upcoming

# 获取单个会议详情
python3 zoom-s2s.py get_meeting 

# 创建会议 (start_time: YYYY-MM-DDTHH:MM:SS)
python3 zoom-s2s.py create_meeting "<主题>" "" <时长分钟> [时区] [密码]
python3 zoom-s2s.py create_meeting "煎饼果子讨论会" "2026-05-05T10:00:00" 60 Asia/Shanghai

# 删除会议
python3 zoom-s2s.py delete_meeting 

# 获取云录像
python3 zoom-s2s.py recordings  

# 获取用户信息
python3 zoom-s2s.py get_user [user]

# 列出账户下所有用户
python3 zoom-s2s.py list_users [page_size]

Token 缓存

脚本自动缓存 Token 到 ~/.zoom-s2s-token.json(有效期约 50 分钟),重复调用无需每次重新认证。

常用操作快速参考

操作 命令
列出最近5个会议 list_meetings 5 upcoming
列出最近10个历史会议 list_meetings 10 past
创建明天10点会议 create_meeting "主题" "YYYY-MM-DDT10:00:00" 60 Asia/Shanghai
获取会议详情 get_meeting
删除会议 delete_meeting --yes
获取云录像 recordings 10

最小权限配置建议

根据实际使用场景按需开通 scope,不需要的功能不要授权:

功能 所需 Scope 建议
列出会议 meeting:read:list_meetings ✅ 核心
查看会议详情 meeting:read:meeting ✅ 核心
创建会议 meeting:write:create 按需开启
删除会议 meeting:write:delete ⚠️ 谨慎开启
读取云录像 cloud_recording:read:list_user_recordings ⚠️ 谨慎开启
列出账户用户 user:read:list_users ⚠️ 谨慎开启

建议为此 Skill 单独创建一个 Zoom Server-to-Server App,不要复用已有 App 的凭证。

Agent 调用规范

  • 创建会议前:向用户确认主题、时间、时长,再执行。
  • 删除会议前:必须向用户明确展示会议信息并获得确认,命令需附加 --yes 参数。
  • 禁止超范围调用:仅允许文档中列出的 Action,不得构造任意 Zoom REST API 请求。

创建周期性会议

创建 type=8(周期性会议)的 recurrence 参数说明:

recurrence.type 说明 可用字段 是否可用
1 每日循环(Daily) end_date_time 或 count ✅
2 每周循环(Weekly) weekly_days(字符串), end_date_time 或 count ✅
3 每月循环(Monthly) monthly_day 或 monthly_weeks + weekly_days ✅

⚠️ 关键避坑:weekly_days 必须是字符串,不是数组!

错误写法 正确写法
"weekly_days": [6] "weekly_days": "6"
"weekly_days": ["6"] "weekly_days": "6"(单日)
"weekly_days": "6,0"(多日,周六+周日)

weekly_days 取值:1=周一 ~ 7=周日

示例:创建 5月23日-24日(周六日)的周期性会议:

payload = {
    "topic": "CSM公开课",
    "type": 8,
    "start_time": "2026-05-23T08:00:00",
    "duration": 540,
    "timezone": "Asia/Shanghai",
    "recurrence": {
        "type": 2,
        "repeat_interval": 1,
        "weekly_days": "6,0",   # 周六+周日,字符串!
        "end_date_time": "2026-05-24T00:00:00Z"
    },
    "settings": {
        "host_video": True,
        "participant_video": True,
        "join_before_host": False,
        "mute_upon_entry": False
    }
}

多日示例(周一+周三+周五):

"weekly_days": "1,3,5"

踩坑记录

  1. scope 错误 (4711):某些 API(如 get_user)需要在 App 里开通对应 scope,又如 list_meetings 需要在 App 里开通 meeting:read:list_meetings 权限
  2. Token 有效期:Server-to-Server Token 有效期 1 小时,脚本自动刷新并缓存
  3. 用户 ID:可用邮箱,也可用 list_users 查 user_id
  4. weekly_days 必须为字符串:Zoom API 要求 weekly_days 是 "6" 这样的字符串,而非 [6] 数组,传数组会报 300 错误

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习