# youdu-sdk-java **Repository Path**: tudorex/youdu-sdk-java ## Basic Information - **Project Name**: youdu-sdk-java - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-22 - **Last Updated**: 2024-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README java版有度SDK说明 ==================== SDK类介绍 -------------------- |类名|使用说明| | ------------- |------------- | YDApp         | 有度应用对象    | AppClient     | 应用消息发送       | OrgClient | 组织架构管理 | GroupClient | 群管理 | SysMsgClient   | 系统消息发送 | IdentifyClient | 单点登录身份认证 | SessionClient | 会话管理及会话消息发送 *** ## 目录 * [YDApp](#YDApp) * [AppClient](#AppClient) * [OrgClient](#OrgClient) * [GroupClient](#GroupClient) * [SysMsgClient](#SysMsgClient) * [IdentifyClient](#IdentifyClient) * [SessionClient](#SessionClient) *** ### YDApp 有度应用对象 有度应用对象是所有接口都需要用到的基础对象 *** #### 构建YDApp import im.youdu.sdk.entity YDApp ydApp = new YDApp(int buin, String srvHost, String appName, String appId, String token, String appAesKey) buin: 企业总机号 srvHost: 有度服务器地址,例如 10.0.0.168:7080 appName: 应用名称 appId: 应用ID token: 应用回调设置的token,没有就传空串 appAesKey: 应用回调设置的EncodingAESKey *** ### AppClient -------------------- #### 构建AppClient import im.youdu.sdk.client AppClient appClient = new AppClient(ydApp) #### uploadImage 上传图片 appClient.uploadImage(String name, String path) name: 图片名称 path: 图片绝对路径。如果name为空就从path读取 #### uploadImageWithBytes 上传图片 appClient.uploadImageWithBytes(String name, byte[] data) name:  图片名称 data:  图片二进制数据 #### uploadFile 上传文件 appClient.uploadFile(String name, String path) name: 文件名称 path: 文件绝对路径。如果name为空就从path读取 #### uploadFileWithBytes 上传文件 appClient.uploadFileWithBytes(String name, byte[] data) name:  文件名称 data:  文件二进制数据 #### uploadVoice 上传语音 appClient.uploadVoice(String name, byte[] data) name:  语音文件名称 data:  语音文件二进制数据 #### uploadVideo 上传视频 appClient.uploadVideo(String name, byte[] data) name:  视频文件名称 data:  视频文件二进制数据 #### downloadFileAndSave 下载并保存文件 appClient.downloadFileAndSave(String mediaId, String dir) mediaId:  文件ID dir:  需要保存的文件夹路径 #### downloadImageAndSave 下载并保存图片 appClient.downloadImageAndSave(String mediaId, String dir) mediaId:  图片ID dir:  需要保存的文件夹路径 #### sendTextMsg 给应用发送文本消息 appClient.sendTextMsg(String toUser, String toDept, String content) toUser: 消息接收者,多个接收者用|分隔 toDept: 消息接收部门,多个部门用|分隔 content: 文字内容 #### sendFileMsg 给应用发送文件消息 appClient.sendFileMsg(String toUser, String toDept, String fileName, String filePath) fileName: 文件名称 filePath: 文件绝对路径 #### sendFileMsgWithMediaId 给应用发送文件消息 appClient.sendFileMsgWithMediaId(String toUser, String toDept, String mediaId) mediaId: 文件ID #### sendImageMsg 给应用发送图片消息 appClient.sendImageMsg(String toUser, String toDept, String imageName, String imagePath) fileName: 图片名称 filePath: 图片绝对路径 #### sendImageMsgWithMediaId 给应用发送图片消息 appClient.sendImageMsgWithMediaId(String toUser, String toDept, String mediaId) mediaId: 文件ID #### sendLinkMsg 给应用发送隐式链接消息 appClient.sendLinkMsg(String toUser, String toDept, LinkBody link) link: 隐式链接对象 构建LinkBody对象: import im.youdu.sdk.entity LinkBody body = new LinkBody(String url, String title, int action); url: 需要点击打开的网页链接 title: 隐式链接显示的标题 action:1:有度客户端会在url追加上有度身份认证token #### sendExlinkMsg 给应用发送外链消息 appClient.sendExlinkMsg(String toUser, String toDept, ExlinkBody exLink) exLink: 外链对象 构建外链对象 ExlinkBodyCell cell = new ExlinkBodyCell(String title, String url, String digest, String mediaId) title: 外链标题 url: 需要点击打开的网页链接 digest:外链摘要 mediaId: 外链需要显示的图片,可为空 例如: ExlinkBodyCell cell1 = new ExlinkBodyCell("有度","https://youdu.cn","有度官网", ""); ExlinkBodyCell cell2 = new ExlinkBodyCell("有度下载","https://youdu.cn/download.html","有度下载", ""); ExlinkBody body = new ExlinkBody(); body.addCell(cell1); body.addCell(cell2); #### sendMpnewsMsg 给应用发送图文消息 appClient.sendMpnewsMsg(String toUser, String toDept, MpnewsBody mpnews) mpnews: 图文对象 #### setAppNotice 设置应用角标(待办数通知) appClient.setAppNotice(String account, int count, String tips) account: 目标用户账号 count: 角标值(待办数) tips: 弹窗提醒,不需要就传空串 *** ### OrgClient -------------------- #### Dept import im.youdu.sdk.entity.Dept; Dept ydDept = new Dept(int id, String name, int parentId, int sortId, String alias) id:部门编号 name: 部门名称 parentId: 父部门编号, 根部门ID为0 sortId: 部门排序 alias: 部门别名 #### 构建OrgClient import im.youdu.sdk.client OrgClient orgClient = new OrgClient(ydApp) #### createDept 创建部门 int deptId = orgClient.createDept(Dept dept) dept: 部门信息 deptId: 部门编号 #### updateDept 修改部门 orgClient.updateDept(Dept dept) dept: 部门信息 #### getDept 获取部门 Dept dept = orgClient.getDept(int deptId) deptId:  部门编号 #### deleteDept 删除部门 orgClient.deleteDept(int deptId) deptId:  部门编号 #### listDeptChildren 获取部门直属子部门列表 List depts = orgClient.listDeptChildren(int deptId) deptId: 部门编号。根部门ID为0 #### listDeptSelfAndChildren 获取部门及直属子部门列表 List depts = orgClient.listDeptSelfAndChildren(int deptId) deptId: 部门编号。根部门ID为0 #### getDeptIdByAlias 根据别名获取部门ID int deptId = orgClient.downloadFileAndSave(String alias) alias:  部门别名 deptId: 部门编号 #### listAliasDept 获取部门别名列表 List depts = orgClient.listAliasDept() depts:  图片ID import im.youdu.sdk.entity.AliasDept int deptId; //部门编号 String alias; //别名 *** ### SysMsgClient -------------------- #### 构建SysMsgClient import im.youdu.sdk.client; int buin = 707168; String host = "127.0.0.1:7080"; String appId = "sysMsgAssistant"; String appAESKey = "nHff0+CrZRd0jg/o+b2BpLVVI0XzgOkasRaz50k80KE="; YDApp app = new YDApp(buin, host, "", appId, "", appAESKey); SysMsgClient sysmsgClient = new SysMsgClient(app); #### sendSysMsg 发送系统消息 sysmsgClient.sendSysMsg(String toUser, String toDept, SysMsgBody sysMsg) sysMsg: 系统消息对象 构建SysMsgBody对象:系统消息支持文本和隐式链接 import im.youdu.sdk.client; SysMsgBody sysMsg = new SysMsgBody(); sysMsg.setTitle("有度即时通"); //设置系统消息标题 sysMsg.addTextBody("欢迎使用有度即时通:"); //添加文字内容 sysMsg.addLinkBody("https://youdu.cn","有度官网",0);//添加隐式链接 *** ### IdentifyClient 有度身份认证 -------------------- #### 构建IdentifyClient对象 import im.youdu.sdk.client; String host = "127.0.0.1:7080"; IdentifyClient identifyClient = new IdentifyClient(host); #### idetify 身份认证获取用户信息 UserInfo userInfo = identifyClient.idetify(String ydToken) ydToken: 有度客户端提供的认证token userInfo:根据ydToken获取到的有度用户信息 account: 账号 chsName: 姓名 gender: 性别, 0:男; 1:女 mobile: 手机号码 phone: 座机号码 email: 邮箱账号 *** ### GroupClient 群管理 -------------------- #### 构建GroupClient对象 import im.youdu.sdk.client; int buin = 707168; String host = "127.0.0.1:7080"; String appId = "sysOrgAssistant"; String appAESKey = "n76ut0qxPWozXbMxGMt8s9pgxUZKUxu/GJ5R5dz+u4g="; YDApp app = new YDApp(buin, host, "", appId, "", appAESKey);    GroupClient groupClient = new GroupClient(app); #### createGroup 创建群 groupClient.createGroup(String groupName) groupName: 群名称 #### listAllGroups 获取所有群列表 List groups = groupClient.listAllGroups() GroupBase: 群基本信息 id: 群ID name: 群名称 #### listUserGroups 获取用户的所有群列表 List groups = groupClient.listUserGroups(String userId) userId: 用户账号 #### deleteGroup 删除群 groupClient.deleteGroup(String groupId) groupId: 群ID #### updateGroupName 更新群名称 groupClient.updateGroupName(String groupId, String groupName) groupId: 群ID groupName: 群名称 #### groupInfo 获取群信息 groupClient.groupInfo(String groupId) groupId: 群ID #### addGroupMember 增加群成员 groupClient.addGroupMember(String groupId, String[] addUserList) groupId: 群ID addUserList: 要增加的群成员账号列表 #### delGroupMember 删除群成员 groupClient.delGroupMember(String groupId, String[] delUserList) groupId: 群ID delUserList: 要删除的群成员账号列表 #### isGroupMember 判断用户是否群成员 groupClient.isGroupMember(String groupId, String userId) groupId: 群ID userId: 用户账号 *** ### SessionClient -------------------- #### 构建SessionClient对象 import im.youdu.sdk.client; int buin = 707168; String host = "127.0.0.1:7080"; String appId = "sysOrgAssistant"; String appAESKey = "n76ut0qxPWozXbMxGMt8s9pgxUZKUxu/GJ5R5dz+u4g="; YDApp app = new YDApp(buin, host, "", appId, "", appAESKey); SessionClient sessionClient = new SessionClient(app); #### SessionInfo 会话对象 sessionId: 会话ID title: 会话标题 owner: 会话创建者 version: 会话版本号 type: 会话类型 member: 会话成员账号列表 只需创建多人会话,单人会话不需要创建。 群会话ID就是创建群的时候返回的群ID,所以如果需要给群发送消息,可以通过GroupClient拉取群列表获取到相应群的ID即可。 #### createSession 创建会话 SessionInfo session = sessionClient.createSession(SessionCreateBody body) SessionCreateBody: title: 会话标题 creator: 创建者账号 member: 成员账号列表 type: 会话类型,不需要填写,默认就是multi(多人会话) #### getSession 获取会话 sessionClient.getSession(String sessionId) sessionId: 会话ID #### updateSessionTitle 更新会话标题 sessionClient.updateSessionTitle(String sessionId,String opUser,String title) sessionId: 会话ID opUser: 修改会话标题的用户账号 title: 会话标题 #### updateSession 更新会话 sessionClient.updateSession(SessionUpdateBody body) SessionUpdateBody: sessionId: 会话ID opUser: 修改会话标题的用户账号 title: 会话标题 addMember: 增加的成员列表 delMember: 删除的成员列表 #### sendSingleTextMsg 发送单人会话文字消息 sessionClient.sendSingleTextMsg(String fromUser, String toUser, String content) fromUser: 消息发送人账号 toUser: 消息接收者账号 content: 文本消息 #### sendSingleImgMsg 发送单人会话图片消息 sessionClient.sendSingleImgMsg(String fromUser, String toUser, String imgPath) fromUser: 消息发送人账号 toUser: 消息接收者账号 imgPath: 图片绝对路径 #### sendSingleImgMsgWithMediaId 发送单人会话图片消息 sessionClient.sendSingleImgMsgWithMediaId(String fromUser, String toUser, String imgId) fromUser: 消息发送人账号 toUser: 消息接收者账号 imgId: 图片ID #### sendSingleFileMsg 发送单人会话文件消息 sessionClient.sendSingleFileMsg(String fromUser, String toUser, String filePath) fromUser: 消息发送人账号 toUser: 消息接收者账号 filePath: 文件绝对路径 #### sendSingleFileMsgWithFileId 发送单人会话文件消息 sessionClient.sendSingleFileMsgWithFileId(String fromUser, String toUser, String fileId) fromUser: 消息发送人账号 toUser: 消息接收者账号 fileId: 文件ID #### sendSingleVoiceMsg 发送单人会话语音消息 sessionClient.sendSingleVoiceMsg(String fromUser, String toUser, byte[] voiceData) fromUser: 消息发送人账号 toUser: 消息接收者账号 voiceData: 语音文件二进制数据 #### sendSingleVideoMsg 发送单人会话视频消息 sessionClient.sendSingleVideoMsg(String fromUser, String toUser, byte[] videoData) fromUser: 消息发送人账号 toUser: 消息接收者账号 videoData: 视频文件二进制数据 #### sendSessionTextMsg 发送多人会话文字消息 sessionClient.sendSessionTextMsg(String fromUser, String sessionId, String content) fromUser: 消息发送人账号 sessionId: 会话ID content: 文本消息 #### sendSessionImgMsg 发送多人会话图片消息 sessionClient.sendSessionImgMsg(String fromUser, String sessionId, String imgPath) fromUser: 消息发送人账号 sessionId: 会话ID imgPath: 图片绝对路径 #### sendSessionImgMsgWithImgId 发送多人会话图片消息 sessionClient.sendSessionImgMsgWithImgId(String fromUser, String sessionId, String imgId) fromUser: 消息发送人账号 sessionId: 会话ID imgId: 图片ID #### sendSessionFileMsg 发送多人会话文件消息 sessionClient.sendSessionFileMsg(String fromUser, String sessionId, String filePath) fromUser: 消息发送人账号 sessionId: 会话ID filePath: 文件绝对路径 #### sendSessionFileMsgWithFileId 发送多人会话文件消息 sessionClient.sendSessionFileMsgWithFileId(String fromUser, String sessionId, String fileId) fromUser: 消息发送人账号 sessionId: 会话ID fileId: 文件ID #### sendSessionVoiceMsg 发送多人会话语音消息 sessionClient.sendSessionVoiceMsg(String fromUser, String sessionId, byte[] voiceData) fromUser: 消息发送人账号 toUser: 消息接收者账号 voiceData: 语音文件二进制数据 #### sendSessionVideoMsg 发送多人会话视频消息 sessionClient.sendSessionVideoMsg(String fromUser, String sessionId, byte[] videoData) fromUser: 消息发送人账号 toUser: 消息接收者账号 videoData: 视频文件二进制数据 #### downloadMsgZipFile 获取会话消息zip文件的byte[]内容 sessionClient.downloadMsgZipFile(String fileId) fileId:  zip文件id #### downloadMsgZipFileAndSave 下载会话消息的zip文件并保存到dir目录 sessionClient.downloadMsgZipFileAndSave(String fileId, String dir) fileId: zip文件id dir:  需要保存的文件夹路径