如流服务

优质
小牛编辑
141浏览
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) {
        }
    });
消息通道通用错误码类型说明
200number成功
201number进行中
202number暂停
203number取消
204number存在
400number未知错误
401number失败
404number不存在

日历提醒

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为字符串,说明接口调用失败原因
        }
    });