类名 | 使用说明 |
---|---|
YDApp | 有度应用对象 |
AppClient | 应用消息发送 |
OrgClient | 组织架构管理 |
GroupClient | 群管理 |
SysMsgClient | 系统消息发送 |
IdentifyClient | 单点登录身份认证 |
SessionClient | 会话管理及会话消息发送 |
有度应用对象是所有接口都需要用到的基础对象
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
import im.youdu.sdk.client
AppClient appClient = new AppClient(ydApp)
appClient.uploadImage(String name, String path)
name: 图片名称
path: 图片绝对路径。如果name为空就从path读取
appClient.uploadImageWithBytes(String name, byte[] data)
name: 图片名称
data: 图片二进制数据
appClient.uploadFile(String name, String path)
name: 文件名称
path: 文件绝对路径。如果name为空就从path读取
appClient.uploadFileWithBytes(String name, byte[] data)
name: 文件名称
data: 文件二进制数据
appClient.uploadVoice(String name, byte[] data)
name: 语音文件名称
data: 语音文件二进制数据
appClient.uploadVideo(String name, byte[] data)
name: 视频文件名称
data: 视频文件二进制数据
appClient.downloadFileAndSave(String mediaId, String dir)
mediaId: 文件ID
dir: 需要保存的文件夹路径
appClient.downloadImageAndSave(String mediaId, String dir)
mediaId: 图片ID
dir: 需要保存的文件夹路径
appClient.sendTextMsg(String toUser, String toDept, String content)
toUser: 消息接收者,多个接收者用|分隔
toDept: 消息接收部门,多个部门用|分隔
content: 文字内容
appClient.sendFileMsg(String toUser, String toDept, String fileName, String filePath)
fileName: 文件名称
filePath: 文件绝对路径
appClient.sendFileMsgWithMediaId(String toUser, String toDept, String mediaId)
mediaId: 文件ID
appClient.sendImageMsg(String toUser, String toDept, String imageName, String imagePath)
fileName: 图片名称
filePath: 图片绝对路径
appClient.sendImageMsgWithMediaId(String toUser, String toDept, String mediaId)
mediaId: 文件ID
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
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.im","有度官网", "");
ExlinkBodyCell cell2 = new ExlinkBodyCell("有度下载","https://youdu.im/download.html","有度下载", "");
ExlinkBody body = new ExlinkBody();
body.addCell(cell1);
body.addCell(cell2);
appClient.sendMpnewsMsg(String toUser, String toDept, MpnewsBody mpnews)
mpnews: 图文对象
appClient.setAppNotice(String account, int count, String tips)
account: 目标用户账号
count: 角标值(待办数)
tips: 弹窗提醒,不需要就传空串
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: 部门别名
import im.youdu.sdk.client
OrgClient orgClient = new OrgClient(ydApp)
int deptId = orgClient.createDept(Dept dept)
dept: 部门信息
deptId: 部门编号
orgClient.updateDept(Dept dept)
dept: 部门信息
Dept dept = orgClient.getDept(int deptId)
deptId: 部门编号
orgClient.deleteDept(int deptId)
deptId: 部门编号
List<Dept> depts = orgClient.listDeptChildren(int deptId)
deptId: 部门编号。根部门ID为0
List<Dept> depts = orgClient.listDeptSelfAndChildren(int deptId)
deptId: 部门编号。根部门ID为0
int deptId = orgClient.downloadFileAndSave(String alias)
alias: 部门别名
deptId: 部门编号
List<AliasDept> depts = orgClient.listAliasDept()
depts: 图片ID
import im.youdu.sdk.entity.AliasDept
int deptId; //部门编号
String alias; //别名
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);
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.im","有度官网",0);//添加隐式链接
有度身份认证
import im.youdu.sdk.client;
String host = "127.0.0.1:7080";
IdentifyClient identifyClient = new IdentifyClient(host);
UserInfo userInfo = identifyClient.idetify(String ydToken)
ydToken: 有度客户端提供的认证token
userInfo:根据ydToken获取到的有度用户信息
account: 账号
chsName: 姓名
gender: 性别, 0:男; 1:女
mobile: 手机号码
phone: 座机号码
email: 邮箱账号
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);
groupClient.createGroup(String groupName)
groupName: 群名称
List<GroupBase> groups = groupClient.listAllGroups()
GroupBase: 群基本信息
id: 群ID
name: 群名称
List<GroupBase> groups = groupClient.listUserGroups(String userId)
userId: 用户账号
groupClient.deleteGroup(String groupId)
groupId: 群ID
groupClient.updateGroupName(String groupId, String groupName)
groupId: 群ID
groupName: 群名称
groupClient.groupInfo(String groupId)
groupId: 群ID
groupClient.addGroupMember(String groupId, String[] addUserList)
groupId: 群ID
addUserList: 要增加的群成员账号列表
groupClient.delGroupMember(String groupId, String[] delUserList)
groupId: 群ID
delUserList: 要删除的群成员账号列表
groupClient.isGroupMember(String groupId, String userId)
groupId: 群ID
userId: 用户账号
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);
sessionId: 会话ID
title: 会话标题
owner: 会话创建者
version: 会话版本号
type: 会话类型
member: 会话成员账号列表
只需创建多人会话,单人会话不需要创建。
群会话ID就是创建群的时候返回的群ID,所以如果需要给群发送消息,可以通过GroupClient拉取群列表获取到相应群的ID即可。
SessionInfo session = sessionClient.createSession(SessionCreateBody body)
SessionCreateBody:
title: 会话标题
creator: 创建者账号
member: 成员账号列表
type: 会话类型,不需要填写,默认就是multi(多人会话)
sessionClient.getSession(String sessionId)
sessionId: 会话ID
sessionClient.updateSessionTitle(String sessionId,String opUser,String title)
sessionId: 会话ID
opUser: 修改会话标题的用户账号
title: 会话标题
sessionClient.updateSession(SessionUpdateBody body)
SessionUpdateBody:
sessionId: 会话ID
opUser: 修改会话标题的用户账号
title: 会话标题
addMember: 增加的成员列表
delMember: 删除的成员列表
sessionClient.sendSingleTextMsg(String fromUser, String toUser, String content)
fromUser: 消息发送人账号
toUser: 消息接收者账号
content: 文本消息
sessionClient.sendSingleImgMsg(String fromUser, String toUser, String imgPath)
fromUser: 消息发送人账号
toUser: 消息接收者账号
imgPath: 图片绝对路径
sessionClient.sendSingleImgMsgWithMediaId(String fromUser, String toUser, String imgId)
fromUser: 消息发送人账号
toUser: 消息接收者账号
imgId: 图片ID
sessionClient.sendSingleFileMsg(String fromUser, String toUser, String filePath)
fromUser: 消息发送人账号
toUser: 消息接收者账号
filePath: 文件绝对路径
sessionClient.sendSingleFileMsgWithFileId(String fromUser, String toUser, String fileId)
fromUser: 消息发送人账号
toUser: 消息接收者账号
fileId: 文件ID
sessionClient.sendSingleVoiceMsg(String fromUser, String toUser, byte[] voiceData)
fromUser: 消息发送人账号
toUser: 消息接收者账号
voiceData: 语音文件二进制数据
sessionClient.sendSingleVideoMsg(String fromUser, String toUser, byte[] videoData)
fromUser: 消息发送人账号
toUser: 消息接收者账号
videoData: 视频文件二进制数据
sessionClient.sendSessionTextMsg(String fromUser, String sessionId, String content)
fromUser: 消息发送人账号
sessionId: 会话ID
content: 文本消息
sessionClient.sendSessionImgMsg(String fromUser, String sessionId, String imgPath)
fromUser: 消息发送人账号
sessionId: 会话ID
imgPath: 图片绝对路径
sessionClient.sendSessionImgMsgWithImgId(String fromUser, String sessionId, String imgId)
fromUser: 消息发送人账号
sessionId: 会话ID
imgId: 图片ID
sessionClient.sendSessionFileMsg(String fromUser, String sessionId, String filePath)
fromUser: 消息发送人账号
sessionId: 会话ID
filePath: 文件绝对路径
sessionClient.sendSessionFileMsgWithFileId(String fromUser, String sessionId, String fileId)
fromUser: 消息发送人账号
sessionId: 会话ID
fileId: 文件ID
sessionClient.sendSessionVoiceMsg(String fromUser, String sessionId, byte[] voiceData)
fromUser: 消息发送人账号
toUser: 消息接收者账号
voiceData: 语音文件二进制数据
sessionClient.sendSessionVideoMsg(String fromUser, String sessionId, byte[] videoData)
fromUser: 消息发送人账号
toUser: 消息接收者账号
videoData: 视频文件二进制数据