用于第三方应用唤起选择企业通讯录成员,用户选择的范围区分成两部分回传给第三方应用。第一部分是,过滤应用可见范围后的openUserId列表,第二部分为用户选择完整列表的ticket,ticket后续可用于创建群聊或者发送模板消息。
接口定义
wx.invoke("selectPrivilegedContact", {
"fromDepartmentId": -1,// 必填,表示打开的通讯录从指定的部门开始展示,-1表示自己所在部门开始, 0表示从最上层开始
"mode": "multi",// 必填,选择模式,single表示单选,multi表示多选
"selectedContextContact": 1 // 是否勾选当前环境的参与者。例如在群+号聊天附件栏打开,默认勾选当前群成员。
"selectedOpenUserIds"["xxx","yyy"], // 非必填,已选用户OpenID列表。single模式忽略该参数。
"selectedTickets"["ticket1","ticket2"] // 非必填,已选ticket列表。single模式忽略该参数
},function(res){
if (res.err_msg == "selectPrivilegedContact:ok")
{
var selectedUserList = res.result.userList; // 已选的成员列表
for (var i = 0; i < selectedUserList.length; i++)
{
var openUserId = selectedUserList[i].openUserId; //成员openUserId
}
var selectedTicket = res.result.selectedTicket; // 已选的集合Ticket
var expiresIn = res.result.expiresIn; // ticket有效期
var selectedUserCount = res.result.selectedUserCount; // 用户选中的用户个数
}
}
);
此接口仅在企业微信3.1.8及以后版本支持,微信端不支持(微信开发者工具也不支持)。
必须先成功调用agentConfig,否则调用时会报“no permission”错误。
仅第三方应用可调用。(第三方通讯录应用不支持)
传入参数
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
fromDepartmentId | Int32 | 是 | 表示打开的通讯录从指定的部门开始展示,-1表示自己所在部门开始, 0表示从最上层开始 |
mode | String | 是 | 选择模式,single表示单选,multi表示多选 |
selectedContextContact | Int32 | 否 | 是否勾选当前环境的参与者。1表示是,0表示否。目前仅支持“群加号”的场景。开发者可根据getContext接口判断所在环境,目前仅支持chat_attachment场景值 |
selectedOpenUserIds | 列表 | 否 | 已选用户openUserId列表,从3.1.12版本开始支持该参数。仅支持multi模式,若传了single,忽略该参数。若传入的openuserid非法,忽略。列表不超过2000 |
selectedTickets | 列表 | 否 | 已选ticket列表,从3.1.12版本开始支持该参数。仅支持multi模式,若传了single,忽略该参数。最多传入10个ticket |
若selectedContextContact为1,且selectedOpenUserIds跟selectedTickets非空,会同时勾选当前环境的用户以及传入的用户列表
返回参数
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
err_msg | String | 是 | 调用成功时返回selectPrivilegedContact:ok 若当前环境不支持选择,且传值了selectedContextContact=1,返回selectPrivilegedContact:fail_unsupported_context 若传了selectedContextContact=1,且mode=single时,返回 selectPrivilegedContact:fail_context_require_multi_mode |
result | SelectResult | 否 | 当调用成功时返回,对应用户选择的内容 |
SelectResult
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
selectedTicket | String | 是 | 对应用户的选择集合凭证 |
expiresIn | Int32 | 是 | ticket的有效时长,单位秒。默认为7天 |
selectedUserCount | Int32 | 是 | 选择的用户数 |
userList | UserList | 否 | 选择的可见范围内的用户列表 |
UserList
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
openUserId | String | 是 | 用户openUserId |