功能配置

功能配置提供 6 个更贴近业务的开关(好友、群、聊天室、推送、敏感词、消息回调)。它们不是第二份状态:每个开关都映射到既有的服务开通项或推送开关,写入会写穿到同一事实源。

概念​

功能开关映射到说明
friendservices.private_chat单聊消息发布(好友接口不在此开关门禁内)
groupservices.group群组能力
chatroomservices.chatroom聊天室能力
pushapp.pushEnabled离线推送开关
sensitiveWordservices.sensitive_words敏感词管理接口门禁
messageCallbacksservices.callbacks回调/事件投递
  • 读取返回 mapping,可在页面直接展示“这个开关改的是哪份状态”。
  • 更新是部分更新:未传的开关保持原值(与服务开通整体覆盖不同)。
  • 改「服务开通」或「功能配置」任意一侧,另一侧立即反映同一状态。

前置条件​

  • 服务端已启动(默认 http://127.0.0.1:8080),控制台入口 http://127.0.0.1:8080/console/#features(tab #features:功能配置)。
  • 请求头 X-Admin-Secret 与服务端 IM_ADMIN_SECRET 一致(本地默认 dev-admin)。
  • 已在控制台选中应用;带 {appkey} 的接口都按应用隔离。
  • 自托管版无购买、计费、套餐、续费与发票流程(不适用项);本页只覆盖配置、查询与治理接口。

步骤​

  1. 读取开关与映射

    确认每个开关映射到的数据源,避免以为存在独立配置。

  2. 按业务关闭能力

    提交需要变更的键;未传键保持原值。

  3. 验证

    调用对应 Open API 或客户端能力,确认 1021/可用状态符合预期。

  4. 与套餐无关

    自托管版没有“功能包/套餐”;开关只是能力边界。

参数表​

操作方法与路径请求体
读取GET /api/admin/apps/{appkey}/features—
部分更新POST /api/admin/apps/{appkey}/features{features:{friend?,group?,chatroom?,push?,sensitiveWord?,messageCallbacks?}}

示例​

关闭群能力但保留单聊​

Shell
curl -sS -X POST "http://127.0.0.1:8080/api/admin/apps/demo/features" \
  -H 'X-Admin-Secret: dev-admin' \
  -H 'content-type: application/json' \
  -d '{"features":{"group":false,"friend":true}}'

curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/features" \
  -H 'X-Admin-Secret: dev-admin'

常见问题​

和「服务开通」有什么区别?​

同一状态的不同视图;功能配置是部分更新,服务开通是整体覆盖。

关闭 sensitiveWord 会删除词表吗?​

不会。只门禁管理接口,词表仍参与过滤。

关闭 push 会影响在线消息吗?​

不会。只影响离线推送。

为什么改了功能配置,服务开通页也变了?​

因为写穿同一数据源,这是预期行为。

相关链接​