如流服务
优质
小牛编辑
147浏览
2023-12-01
如流服务
联系人
1.BdHiJs.service.character.choose 联系人选择器
BdHiJs.service.character.choose({
options: {
// 旧版本
"chooseTypes": ["person"], // 必填,联系人类型。person:人;group:群;topic:讨论组;
service:服务号
"supportFileHelper": true, // 可选,默认为true,新版本默认为false,是否支持文件助手设置,是对 person 类型所做的进一步限定。
}
data: {
// 新版本
types: ["person"], // 新版必填,联系人类型。person:人(仅支持企业员工,不显示外部联系人);group:群;topic:讨论组;service:服务号
supportFileHelper: true, // 可选,默认为false,是否支持文件助手设置,是对 person 类型所做的进一步限定。
alertToConfirm: true, // 可选,默认为true,是否需要 Alert 弹窗,让用户确认选择结果
timestamp: 123, // 可选,用于获取sessionid,当前时间的毫秒数(since1970)。客户端会校验时间是否过期,过期处理查看 onfail
nonce: 12345, // 可选,用于获取sessionid,随机数字
sign: "asdjkasjlskadjkas", // 可选,用于获取sessionid,sign 生成规则 md5(agentid + appsecret + timestamp + nonce)
// 推荐人列表
// !!!当需要推荐人列表时,客户端会校验参数值的有效性。vipPersonIDs 有内容且有效时,才会显示该入口。
vipPersonTitle: "推荐人", // 可选,自定义推荐联系人标题。BdHiJs.sdk.version.get()>= 20 新增。默认为智能推荐。应用方自定义要考虑国际化问题,可以根据客户端语言(BdHiJs.device.language.getCurrent)给对应语言的话术。
vipPersonIDs: ["111", "222"...] ,
vipPersonInfos: [{name:@"张张",imid:@"111"},{name:@"丽丽",imid:@"222"}...] // 可选,自定义推荐联系人列表。BdHiJs.sdk.version.get() >= 22 新增。item为person的imid,应用方可以使用userid(企业帐号)通过服务端接口换取。总数<=5时,客户端会优化在一级页面显示。
multipleChoice: true, // 【新增】,可选,默认为false,是否支持多选,true为多选
selectedUserids: ["hong", "liming"...], // 【新增】,可选,数组,数组元素是userid,表示已经选择的人员(这些人默认选中,可去掉勾选)
},
onsuccess: function(data) {
// 旧版本
// 请求参数使用 chooseTypes 表示旧版本,直接使用数组返回数据
data[0].chooseType // 必填,字符串,联系人类型
data[0].chooseId // 必填,数字,联系人id
data[0].chooseName // 必填,字符串,联系人名字
// 新版本
// 请求参数使用 types 表示新版本,将联系人选择结果封装为 contacts
data.contacts // 必填,数组,用户选择的联系人对象(此接口为批量接口,未来支持多选,当前只有一个元素)
// contacts 数组中,每个元素的属性如下:
data.contacts[0].type // 必填,字符串,联系人类型
data.contacts[0].name // 必填,字符串,联系人显示名
data.contacts[0].id // group,topic,service必填,数字,联系人id
data.contacts[0].bdid // person必填,字符串,联系人用户名(用于替换旧版chooseId)
data.contacts[0].userid // person是员工必填,字符串,联系人在企业平台的用户ID
data.contacts[0].sessionid // person是员工可选,字符串,联系人在企业平台的消息通道ID,所需参数不全或者获取失败时为空
},
onfail: function(err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
if (BdHiJs.sdk.version.get() >= 15) { // JS-SDK 版本号 15 时引入的错误信息
if (err == 'timestamp expired') {
// 如果调用时填写了 timestamp,表示想要请求 sessionid,客户端会校验时间是否过期,过期时间为10分钟
// 如果已过期,请引导用户检查设备时间是否正确
}
}
}
});
2.BdHiJs.service.hi.open 打开好友,群,讨论组,服务号聊天窗口
BdHiJs.service.hi.open({
// BdHiJs.sdk.version.get() >= 16,data支持js对象
data : {
id: "33333" // string,人/群/讨论组/服务号的 imid
type: '4' // 1 人(好友、同事) 2 群 3 讨论组 4 服务号
bdid: 'imap_333' // 好友场景且id未知时使用该参数,值为对方的hi用户名(hiuname)
userid: 'caohua01' // 同事场景且id未知时使用该参数,值为对方的企业帐号(userid)
},
onfail: function(err) {
// 接口调用失败,err 表示失败原因
},
onsuccess: function(succ) {
// 接口调用成功
// succ表示是否成功打开聊天窗口
// - 0: 打开失败,可能是当前网页窗口没有显示给用户,或者用户没有该联系人的权限。如果是后者,可以使用 BdHiJs.service.hi.detail 接口打开联系人详情页
// - 1: 打开成功
}
});
3.BdHiJs.service.hi.detail 打开好友,群,讨论组,服务号详情
BdHiJs.service.hi.detail({
// BdHiJs.sdk.version.get() >= 16,data支持js对象
data : {
id: "33333" // string,人/群/讨论组/服务号 imid
type: '4' // 1 人(好友、同事) 2 群 3 讨论组 4 服务号
bdid: 'imap_333' // 好友场景且id未知使用该参数 值为对方的hi用户名(hiuname)
userid: 'caohua01' // 同事场景且id未知时使用该参数,值为对方的企业帐号(userid)
},
onfail: function(err) {
// 接口调用失败,err 表示失败原因
},
onsuccess: function(succ) {
// 接口调用成功
// succ表示是否成功打开详情窗口
// - 0: 打开失败,当前网页窗口没有显示给用户
// - 1: 打开成功
}
});
分享到如流
1.BdHiJs.service.share.sendWeb web直接分享
BdHiJs.service.share.sendWeb({
// BdHiJs.sdk.version.get() >= 16,data支持js对象
data: {
// json格式
"title": "tttttttt", // 分享的标题
"desc": "dddddddddd", // 分享的简介
"picUrl": "http://img.tupianzj.com/uploads/allimg/141215/6-141215092411.jpg", // 分享的图片
"url": "http://www.sina.cn" // 分享的网络地址
},
onfail: function(responseObj) {
// no操作失败
},
onsuccess: function(responseObj) {
// yes操作成功
}
});
2.BdHiJs.service.share.prepareWeb 设置web分享参数
BdHiJs.service.share.sendWeb({
// BdHiJs.sdk.version.get() >= 16,data支持js对象
data: {
// json格式
"title": "tttttttt", // 分享的标题
"desc": "dddddddddd", // 分享的简介
"picUrl": "http://img.tupianzj.com/uploads/allimg/141215/6-141215092411.jpg", // 分享的图片
"url": "http://www.sina.cn" // 分享的网络地址
},
onfail: function(responseObj) {
// no操作失败
},
onsuccess: function(responseObj) {
// yes操作成功
}
});
消息通道
1.BdHiJs.service.channel.connect 消息通道是否已连接
BdHiJs.service.channel.connect({
onconnect: function(data) {
// 已连接
data.corpId
data.userId
},
ondisconnect: function() {
// 未连接
}
});
2.BdHiJs.service.channel.pushAppMsg 收到消息
BdHiJs.service.channel.pushAppMsg({
onreceiveMsg: function(data) {
data.appReadCtrl
data.unreadCount
data.data
data.groupId
data.containerAgentId // 【新增】,依赖应用的agentid,如果有则返回
}
});
3.BdHiJs.service.channel.routeAppMsg 发送消息
BdHiJs.service.channel.routeAppMsg({
data: {
needGuarantee: true|false // 可选,布尔,投递请求是否需要保证。true:保证投递;false:不保证,比如创建
data: '' // 必填,字符串,透传的特殊二进制类型数据
dependencies: ['', ''] // 可选,数组, 依赖的任务,传入taskIDs
containerAgentId: '3821' // 【新增】可选,字符串,当前应用依赖的应用agentid,如审批的身份打开话题,则需增加该字段,值是话题的agentid
},
onfail: function(err) {
},
onsuccess: function(data) {
},
onReady: function(data) {
// 任务初始化完成时回调
data.taskID // 必填,字符串,任务唯一标识
},
onComplete: function(data) {
// 任务结束时回调
data.taskID
data.data // 查询结果base64
data.code
data.error
}
});
4.BdHiJs.service.channel.appMsgStatus 查询消息发送状态
BdHiJs.service.channel.appMsgStatus({
data: {
taskID: '' // 必填,字符串,任务唯一标识
},
onfail: function(err) {
},
onsuccess: function(data) {
},
onComplete: function(data) {
// 任务结束时回调
data.taskID
data.code
data.error
}
});
5.BdHiJs.service.channel.appMsgUnreadCount 设置消息未读
BdHiJs.service.channel.appMsgUnreadCount({
data: {
unreadCount:
groupId:
isRouteServer:
},
onfail: function(err) {
},
onsuccess: function(data) {
}
});
消息通道通用错误码 | 类型 | 说明 |
---|---|---|
200 | number | 成功 |
201 | number | 进行中 |
202 | number | 暂停 |
203 | number | 取消 |
204 | number | 存在 |
400 | number | 未知错误 |
401 | number | 失败 |
404 | number | 不存在 |
日历提醒
1.BdHiJs.service.task.add 添加一条提醒到本地
BdHiJs.service.task.add({
// BdHiJs.sdk.version.get() >= 16,data支持js对象
data: {
taskid: '123123' // string 任务id
title: 'add' // stirng 标题
description : '米松鼠' // string 描述
starttime : '12123' // long 开始时间 毫秒
endtime : '1111232' // long 结束时间 毫秒
hasalarm : '1' // int 1响铃 0不响铃
alarmminutes : "2" // int 响铃时长 分钟
},
onsuccess: function(data) {
data.succ // 添加成功
}
onfail: function(data) {
data.err // 失败错误信息
},
});
2.BdHiJs.service.task.update(仅Android)
3.BdHiJs.service.task.remove 删除手机日历提醒
BdHiJs.service.task.remove({
// BdHiJs.sdk.version.get() >= 16,data支持js对象
data: {
taskid: '123123' // string 任务id
},
onsuccess: function(data) {
data.succ // remove成功
}
onfail: function(data) {
data.err // 失败错误信息
},
});
重要事件
1.BdHiJs.service.app.sendAppEvent 重要事件分享
BdHiJs.service.app.sendAppEvent({
data: {
"selectedUserids": ["123","..."], // 必填,当有selectedUserids时,表示分享给多个人,userid字段不起作用,当没有或者selectedUserids的长度为0时,默认分享给userid这个字段指定的人
"title": "发送给:", // 可选,不填写时,使用默认话术『分享给:』
"detail": "审批 赵海的婚假申请", // 可选,不填写时,不显示描述,也不显示接收人和描述中间的分割线。
"placeholder": "给分享人留言", // 可选,不填写时,在输入框内使用默认提示『给好友留言』
"confirm": "发送" // 可选,不填写时,发送按钮默认显示『分享』
"userid": "123", // 必填, userid即百度邮箱前缀 说明:为兼容老版本如流客户端存在,新版本用selectedUserids字段
},
onsuccess: function(data) {
// 确认发送
// 注意:取消发送无回调
data.message // 可选,字符串,用户输入的消息
},
onfail: function(err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
}
});