第 1 步在业务活动创建时做,第 2、3 步在用户点「进入会议」时做。
不需要预先注册用户。 换 token 时把
account 和昵称一起传过来,人不存在就现场建、
已存在就顺带更新资料。只有当你要在会议客户端里提供通讯录时,才需要额外做
批量同步用户。
这条路径和带 UI 极简对接的区别:那边是你拿走前端源码自己改界面、
自己部署;这边是连界面都用我们部署好的,你只在服务端拼一个 URL。
两组基地址
对接会用到两个前缀,域名相同:app_id / app_key,鉴权方式也完全一致——app_id / nonce /
timestamp / signature 四个请求头,HMAC-SHA256 签名,算法见
服务端 API 概览。签名代码写一份,两个前缀都能用。
用什么认人
整条链路上认人只靠一个值:你的系统里的用户唯一标识。用户 ID、工号、身份证号、 手机号都行,只要在你那边唯一、且不会变。 所有接口里它都叫account——换 token、同步、白名单,填的都是同一个值。
别和
uids 混:那是我们侧生成的用户 ID,只在 member/sync 的返回和
member/info / member/remove 的可选入参里出现。日常对接一路用 account 就够,
不必把它存下来。第 1 步:创建会议
extend_info是挂业务单据的地方。它是一个自由结构的对象,我们只存储和回传, 把招投标编号放进去,后面收到回调时就能反查到自己的业务conferee_details指定参会白名单,配合attend_type: 3(邀请人员参会) 就能挡住无关的人。这里的人不需要预先存在,但每条都要带上real_name或nickname—— 只给account而系统里查不到这个人时,该条会被忽略,他就进不了会meeting_type:1即时会议、2预约会议。预约会议必须给plan_time和plan_dur- 要自动录像就加
auto_record: true,不用在业务里管录制启停,详见 云录制与直播接入指南
room_no 是第 3 步要用的房间号,meeting_id 是后续所有会议接口的入参:
第 2 步:换免登录 token
用户在你的系统里点「进入会议」时,后端实时调一次:
人不存在就用这几个字段现场建,已存在就顺带更新。 所以你不必维护一份「哪些人同步过」
的账本,每次换 token 都把最新的昵称、头像带上即可,改了名字下次进会就生效。
只传
account 而这个人从没出现过时会报错——因为没有昵称,建出来的用户在会中没有名字。
带上 nickname 就行。第 3 步:拉起会议页
把 token 和房间号拼成地址,让用户的浏览器打开它:nickname 里如果有中文或特殊字符,记得做 URL 编码。
进入会议时麦克风与摄像头默认关闭,由用户自己在会中打开。
完整时序
meeting_id 会随事件回传,用它反查你在 extend_info 里存的单据号。
批量同步用户
上面三步不需要它。只有当你希望用户在会议客户端里能翻通讯录、从人员列表挑人入会时, 才需要提前把人推过来。
返回按
account 分成成功与失败两张表:
success 的值是我们侧的用户 ID,可以存下来,但后续接口用 account 就够了。
重复同步同一个 account 是更新而不是新建,所以全量推和增量推都行。同一时刻只允许一个
同步任务在跑,并发调用会收到「频率过快 请稍候」。
组织结构的能力边界
department 是一个平铺的字符串,不是层级。多级部门树目前只能在管理后台用 Excel
导入(最多四级、单次 500 行),没有对应的 API。
所以如果你只是想让参会人看到「张三(招标一部)」,department 够用;如果你要把整棵
组织树同步过来供用户在通讯录里逐级点选,当前这条路径做不到,需要单独提。
另外两个可选接口
查用户与在线状态 ——POST /stm/srvapi/v1/member/info
is_online,可以在你的界面上显示「张三 在线」。也可以用 uids 按我们侧的
用户 ID 查。
清理离职用户 —— POST /stm/srvapi/v1/member/remove
入参同上。删除后该用户无法再换 token 进会。
什么时候该改用完整 SDK
这条路径的代价是界面不是你的。出现下面任何一条,就该考虑集成 SMeeting SDK:- 会议界面要用你自己的品牌、布局或交互
- 会议要嵌在你的 App 内部,而不是跳出去一个网页
- 需要在会中做业务联动,比如开标环节到点自动解除全员静音