腾讯会议招聘场景实现效果、如何选择应用类型以及自建应用实现方式见上一篇文章《腾讯会议招聘场景实践(自建应用)》。
使用三方应用时业务流程与自建应用大同小异,主要差异点在与创建专属参会链接和会中候选人操作部分。其中创建专属参会链接时,如果主持人是企业内部用户,可以通过userid来识别主持人身份,或者为主持人也创建一个专属链接,通过专属链接来识别身份;如果主持人为企业外部用户,则只能使用专属参会链接来识别身份。会中候选人操作部分相比自建应用,选择三方应用时候选人也可以会中使用扩展应用,完成答题等面试任务。三方应用实现的业务流程如下。
实现方案
三方应用和自建应用实现招聘场景的业务流程虽然差异不大,但具体实现的方式还是有比较大的差异。面试场景涉及到的API接口调用虽然可以完全由三方应用来实现,但考虑到部分情况下用户身份识别比较麻烦,会创建一个自建应用,和三方应用配合使用,达到简化实现的目的。下面讲解时会除了具体的接口用法外,也会描述使用的应用类型。
0 三方应用特殊处理
在开发阶段,三方应用只有企业内使用权限,为了能验证外部用户使用的效果,可以在应用设置里面将外部用户的手机号加入到调试手机号中,添加方法参考开发和测试应用指引。
开发完成后,需要提交上线应用申请,并且说明只需要打开外部用户使用权限,不需要上架到应用市场,具体参考上线应用指引,后台审核通过后开通外部用户使用权限。上架过程中遇到问题可以提交工单咨询。
1 创建会议
创建面试日程时使用自建应用来调用创建会议接口,根据不同的面试场景,来打开云录制、等候室、面试官匿名等设置。重点参数及使用方法说明如下。
代码语言:txt复制{
// userid:会议创建者,可以设置为面试官或者专门用于面试业务的账号,因为该接口使用自建应用调用,这里都是传的userid,不是三方应用的openid
"userid": "carl",
"instanceid": 1,
"subject": "XXX面试",
// type:会议类型,面试会议需要设置为0(预约会议)
"type": 0,
// hosts:主持人列表,企业内面试官可以都设置为主持人
"hosts": [
{
"userid": "carl",
// is_anonymous:是否设置匿名入会,不希望应聘者看到面试官真实信息时可以设置匿名入会,设置为true之后,该用户会中昵称为nick_name设置的值
"is_anonymous": true,
"nick_name": "面试官"
}
],
// start_time:会议开始时间戳,设置为面试开始时间,单位为秒
"start_time": "1717653600",
// end_time:会议结束时间戳,设置为面试结束时间,单位为秒
"end_time": "1717657200",
"settings": {
// auto_record_type:自动会议录制类型,招聘场景一般会开启云录制用于存档
"auto_record_type": "cloud",
// auto_in_waiting_room:是否开启等候室,根据面试场景来设置,多个候选人分时间段使用同一个会议号面试时开启等候室
"auto_in_waiting_room": "boolean"
}
}
2 绑定扩展应用
在面试会议创建完成后,需要将会议和面试应用进行绑定,这样面试官入会之后可以自动打开面试应用,查看候选人简历并进行面试评价。需要特别注意的是该步骤需要使用自建应用来调用绑定扩展应用接口,被绑定的是用于会中展示简历等功能的三方应用ID,接口设置应用的可见范围、应用自动打开和在会中工具栏外显,重点参数及使用方法说明如下。
代码语言:txt复制{
// 会议创建者的userid
"userid": "carl",
"instanceid": 1,
"meeting_id": "30226828XXXX2229858",
// 扩展应用列表
"tool_list": [
{
// tool_appid:本企业的appid
"tool_appid": "21XXXXX90",
// tool_sdkid:招聘应用的sdk id,应用类型为三方应用
"tool_sdkid": "225XXXXX326",
}
],
// 招聘应用的sdk id,应用类型为三方应用
"auto_open_sdkid": "225XXXXX326",
// 招聘应用的sdk id,应用类型为三方应用
"toolbar_sdkid": "225XXXXX326"
}
3 创建专属链接
当同一场面试的候选人不止一个人或者需要对候选人进行匿名处理时,可以让候选人使用专属链接入会,后续根据专属链接携带的customer_data信息来修改会中昵称。此外如果面试官是企业外用户,也可以让面试官使用专属链接参会,应用根据customer_data来判断面试官身份。该步骤需要使用自建应用来调用创建用户专属参会链接接口,具体参数设置如下。
代码语言:txt复制{
"meeting_id": "30226828XXXX2229858",
"customer_data": "候选人1/面试官1"
}
4 企业外面试官设置为主持人(可选)
对于企业外面试官账号,还需要使用自建应用调用设置联席主持人接口,把面试官设置为主持人,具体参数设置如下。
代码语言:txt复制{
// operator_id设置为会议创建者的userid
"operator_id": "carl",
"operator_id_type": 1,
// 如果创建者未入会,instanceid传1即可,如果已经入会,和创建者Webhook用户入会消息中的值保持一致
"instanceid": "integer required",
"action": true,
"user": {
// 填外部面试官的ms_open_id,ms_open_id和instanceid值从面试官Webhook用户入会消息中获取
"to_operator_id": "XXXXX",
"to_operator_id_type": 4,
"instanceid": "integer required"
}
}
5 扩展应用打开简历/面试题目
当面试官是企业内成员的时候,在创建会议时就已经指定为主持人,用户入会后调用获取当前会议信息JSAPI接口,返回的roleType值为HOST或者CO_HOST时,表明该用户为面试官,此时打开候选人简历和面试评价页面。如果面试官为企业外用户或者候选人参会时,因为是通过专属链接参会,可以使用获取 customerData JSAPI接口来获取创建专属链接时传的customer_data参数,以确认参会者身份,然后选择展示简历页面或者面试题目页面。
6 修改参会人昵称
订阅用户入会Webhook事件消息之后,候选人通过专属链接进入会议时会收到Webhook消息,里面带了customer_data参数,通过这个参数可以识别出参会者的身份,同时还有一个操作者ms_open_id参数,这个参数作为修改昵称接口的用户标识入参。然后就可以调用更改会中成员昵称接口来修改候选人会中昵称了,具体参数设置如下。
代码语言:txt复制{
// operator_id:这里填会中主持人或者创建者的userid,operator_id_type填1
"operator_id": "carl",
"operator_id_type": 1,
// instanceid:根据主持人的实际终端类型填写,会中没有主持人时可填1
"instanceid": "integer required",
"users": [
{
// instanceid和ms_open_id使用 用户入会 Webhook消息里面的值
"instanceid": "integer required",
"ms_open_id": "string required",
// 要修改的昵称
"nick_name": "候选人1"
}
]
}
7 获取云录制文件、转写等
面试会议结束后台完成云录制转码之后,会发送云录制已完成Webhook事件消息,此时可以使用查询单个录制详情接口来查询云录制播放地址、录制文件下载地址、转写文件和智能纪要等信息,接口输入参数为Webhook消息中的消息中的record_file_id和创建者userid字段。拿到这些信息后即可转存到HR系统存档。