控制台使用指南
登录、项目管理、密钥轮换、服务开通、Token 生成器、用量与水晶球、Webhook 配置、成员与审计。
控制台是自托管的管理界面:登录、建项目、拿密钥、开通服务、生成 Token、看用量与水晶球、配 Webhook、管成员与审计。本页按你会在界面上做什么组织,每个动作都给出等价的 REST 调用,方便脚本化。
路由与页面
| 页面 | 路径 | 你能做什么 |
|---|---|---|
| 登录 | /login | 账号密码登录,拿会话 |
| 项目列表 | /projects | 查看/进入项目 |
| 新建项目 | /projects/new | 建项目、选开通服务、设配额 |
| 项目概览 | /p/:projectId/overview | 频道数、任务数、近 24h 用量 |
| 设置 | /p/:projectId/settings | 改名称、配额、轮换密钥 |
| 服务 | /p/:projectId/services | 开通/关闭录制、推流等 |
| Token 生成器 | /p/:projectId/tokens | 生成/校验调试 Token |
| Webhook | /p/:projectId/webhook | 配地址与 secret、看投递日志、重放 |
| 成员 | /p/:projectId/collaborators | 加/移除协作者与角色 |
| 审计 | /p/:projectId/audit | 谁在什么时候改了什么 |
| 用量 | /p/:projectId/usage | 按小时/天/月看分钟数与金额 |
| 水晶球 | /p/:projectId/crystal-ball | 实时监控、质量、通话调查、数据洞察 |
| 录制 | /p/:projectId/recordings | 录制任务列表与状态 |
| 推流 | /p/:projectId/streams | 推流任务列表与状态 |
第一件事:建项目并保存密钥
界面:/projects/new → 填名称 → 勾选要开通的服务 → 创建。
customerSecret 与 appCertificate 只显示一次,关掉弹窗就再也看不到。请立刻存进密钥管理。 丢了只能轮换(见下)。
等价调用:
curl -s -X POST "$NIMEET_API_BASE/console/projects" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H 'Content-Type: application/json' \
-d '{"name":"my-project","services":{"recording":true,"streaming":true}}'密钥轮换(最危险的操作)
入口:项目设置页 → 轮换 Customer Secret / App Certificate。也可以:
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/keys/rotate" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H 'Content-Type: application/json' \
-d '{"scope":"all"}'scope 可选 all / customerSecret / appCertificate。轮换后:
customerSecret变了 → 所有服务端 Basic 调用立刻 401,必须先更新你的服务端配置再轮换;appCertificate变了 → 所有已签发的 Token 立刻失效,正在通话的客户端会在到期检查时被断开。
推荐节奏:提前 1 小时发公告 → 更新服务端配置 → 轮换 → 观察 401 invalid_token 曲线 → 客户端主动续期或重连。
服务开通
入口:项目服务页。关闭服务后对应接口返回 403 service_not_enabled(不会静默降级)。
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/services" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H 'Content-Type: application/json' \
-d '{"recording":true,"streaming":false}'Token 生成器
入口:Token 生成器页,填频道名/uid/角色/TTL,生成后可直接复制给调试客户端使用。 生成的同时可以点「校验」回读权限位与过期时间(等价 GET /v1/tokens/verify)。
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/token" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H 'Content-Type: application/json' \
-d '{"channelName":"weekly-sync","uid":10001,"role":"host","ttlSeconds":600}'Webhook 配置与投递日志
入口:Webhook 页 → 填 URL 与 secret → 选事件 → 保存。保存后立刻有一条测试投递(X-Request-Id 可用于追踪)。
curl -s -X PUT "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION" \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com/hooks/nimeet","secret":"$WEBHOOK_SECRET","events":["channel_create","user_join"],"enabled":true}'
# 投递日志(失败原因、响应码、重试次数)
curl -s "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook/deliveries?limit=20" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"
# 重放一条失败的投递
curl -s -X POST "$NIMEET_API_BASE/console/projects/$PROJECT_ID/webhook/deliveries/$DELIVERY_ID/replay" \
-H "Authorization: Bearer $NIMEET_CONSOLE_SESSION"签名与重试语义见 回调接入。
成员与审计
- 成员页可以添加/移除协作者并指定角色(
owner/admin/developer/viewer); - 审计页按时间倒序列出项目级变更(谁、什么时候、改了什么),常用于密钥轮换后的追责与排障;
- 两个动作都有对应 REST:
/console/projects/{projectId}/collaborators与/console/projects/{projectId}/audit。
用量与水晶球
- 用量页:按小时/天/月看
minutes与金额,口径见 计费模型; - 水晶球页:近 30 分钟实时曲线、质量分布、通话调查、数据洞察,口径见 水晶球;
- 两者数据源与控制台是同一套 API,因此你在页面上看到的数字可以直接用 REST 复现。
常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 登录 401 | 账号/密码错,或 seed 密码被改 | 看 CONSOLE_SEED_PASSWORD |
| 项目列表为空 | 会话属于另一个账号 | 退出重新登录 |
| 看不到密钥 | 一次性返回,已关闭 | 轮换密钥 |
| 轮换后全线 401 | 服务端还在用旧 secret | 更新环境变量并重启 |
| 投递日志为空 | 事件还没发生或服务未开通 | 触发一次入会再看 |
| 用量数字为 0 | 时间窗选错(默认今天) | 换时间窗 |