统一通信平台接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UcSTARSERVER 接口设计
2007-12-6(擎旗技术)
目录
UcSTARSERVER 接口设计 (1)
1 说明: (2)
2 业务逻辑WebService接口 (2)
2.1 Webservice 接口地址: (2)
2.2 Webserivce 调用说明 (2)
2.2.1 基本资源文件 (2)
2.2.2 使用之前注意事项: (2)
2.3 Webserivce API 说明: (4)
2.3.1 JAVAAPI 接口: (4)
2.3.1.1 用户接口: (4)
2.3.1.2 部门接口: (7)
2.3.1.3 群组接口: (10)
2.3.1.4 消息接口: (13)
2.3.1.5 其他接口 (16)
2.3.2 JAVAAPI BEAN对象: (17)
2.3.2.1 群组对象: (17)
2.3.2.2 部门对象 (18)
2.3.2.3 消息对象 (18)
2.3.2.4 短信对象 (19)
2.3.2.5 用户对象 (20)
2.3.2.6 状态对象 (20)
2.3.2.7 状态扩展对象 (20)
3 短信公共接口 (22)
3.1 短信公共接口采用xmpp的注册方式: (22)
3.1.1 流程: (22)
3.1.2 接口说明: (22)
1说明:
采用webservice和xmpp相结合的方式处理ucstarserver对外接口,并提供了相应的java代
码示例。
用webservice接口进行访问控制
2业务逻辑WebService接口
2.1 Webservice 接口地址:
http://localhost:9090/services/UcstarWebservice?wsdl
(请把localhost改成您的ucstart服务器所在的IP或者域名地址)
2.2 Webserivce 调用说明
2.2.1基本资源文件
资源文件:ucstarserver_webservice.jar 包
JAVA 工程:prj_webservice_jar
环境要求:JDK1.4以上
注:webservice接口目前只是提供了JAVA的例子程序,如需要C++、PHP、C#等调用方式, 请联系我公司配合完成。
2.2.2使用之前注意事项:
进入管理后台打开webservice接口
WEBService接□信任站点®
WEBService^ 口信任站点
ff^VVEBSenice 服务。
确定取消
访问。
所有访问一指走访i可保存属性
将ucstarserver_webservice.jar 包添加到工程中
将工程prj_webservice_jar中的测试代码添加到java工程中
修改测试程序TestWebserviceGetUser:
修改其中的connect中的地址,改成真实的ucstar服务器地址。
运行测试程序,如果能正确打印" 测试成功:admin ”,则说明webservice建立成功。
测试程序:TestWebserviceGetUser.java
2.3 Webserivce API 说明:
2.3.1 JAVAAPI 接口:
2.3.1.1 用户接口:
2.3.1.1.1查询该用户的详情资料
getUser
public UcstarUser getUser(ng.String userName) 参数:
userName - 用户帐号返回:
返回用户对象
2.3.1.1.2查询用户状态
getUserState
public UcstarUserState getUserState(ng.String userName) 参数:
userName - 用户帐号返回:
返回用户状态对象
2.3.1.1.3添加用户资料
addUser
public int addUser(UcstarUser user) 参数:
user( UcstarUser - 用户对象) 返回:
返回参数:0 添加成功注意:如UcstarUser 中部门id 没填,则默认部门id 为0
1 添加失败因:账号为空或用户名为空
2 添加失败因:已有用户存在
3 添加失
败因:部门ID 在部门表中不存在
2.3.1.1.4修改用户资料
updateUser
public int updateUser(UcstarUser user) 参数:
_user - 用户对象
返回:
20 修改成功
21 修改失败因该用户不存在
22 修改失败因部门ID 不存在
2.3.1.1.5删除该用户
deleteUser
public int deleteUser(ng.String userName) 参数:
userName - 用户帐号
返回:
40 删除成功
41 删除失败(因:没有该用户)
2.3.1.1.6根据用户账号修改密码
updateUserPasswordStrict
public int updateUserPasswordStrict(ng.String username,
ng.String oldpassword, ng.String
newpassword)
参数:
username - 用户帐号
oldpassword - 用户原有密码newpassword - 用户的新密码返回:
int ,20 修改成功
2.3.1.1.7根据用户账号查姓名
getName
public ng.String getName(ng.String _userName) 参数:
_userName - 用户帐号返回:
返回用户姓名
2.3.1.1.8根据部门账号获取用户列表
getUserList
public UcstarUser[] getUserList(ng.String deptid) 参数:
deptid - 部门ID
返回:
用户列表数组
2.3.1.1.9获取所有在线用户数量
getAllOnlineCount
public int getAllOnlineCount() 返回:
在线用户数量
2.3.1.1.10 获取用户email 列表
getEmails
public ng.String getEmails(ng.String userIds, ng.String deptarIds, ng.String
bindIds)
参数:
userIds - 用户ID(多用户用逗号隔开)
deptlds -部门ID(多部门用逗号隔开) bindlds
-群组ID(多群组用逗号隔开)
返回:
返回Email 列表(逗号隔开)
2.3.1.1.11 验证用户名和密码
authUser
public int authUser(ng.String username, ng.String password) 参数:
username - 用户帐号
password - 用户密码返回:
1:正确0:错误
2・3・1・1・12验证sessioi的正确性
authSession
public int authSession(ng.String _sessionId)
参数:
_sessionId - 单点登陆获取的sessionid
返回:
1:正确,0:不正确
2.3.1.2 部门接口:
2・3・1・2・1查询部门的详细信息
getDepartInfo
public UcstarDept getDepartInfo(ng.String deptid)
参数:
departId - String 部门ID 返回:
UcstarDept 返回部门对象
2.3.1.2.2添加部门
addDept
public int addDept(UcstarDept deptInfo)
参数:deptInfo - 部门对象
返回:
0 增加成功
4 增加失败因:部门已存在
5 增加失败因:(因: 父部门不存在)
6 增加失败因:传入的对象UcstarDept 对象为空或里面数据为空
2.3.1.2.3更新部门信息
updateDept
public int updateDept(UcstarDept deptInfo) 参数:deptInfo - 部门对象返回:
20 修改成功
23 修改失败因:所要修改的部门不存在
2.3.1.2.4删除部门
deleteDept
public int deleteDept(ng.String deptid,
ng.String completedelete)
参数:部门id - 0:不删除子部门- 1: 删除子部门
返回:
40 删除成功
42 删除失败表中不存在要删除的部门Id
43 删除失败参数completedelete 没有传值
2.3.1.2.5根据部门获取子部门列表
getDeptList
public UcstarDept[] getDeptList(ng.String deptid) 参数:
deptid - 部门ID
返回:
返回下级部门列表数组
2.3.1.2.6根据部门名称查找部门
searchDeptByName
public UcstarDept[] searchDeptByName(ng.String deptName) 参数:deptName - 部门名称返回:
部门对象列表
2.3.1.2.7删除部门中的用户(关系)
deleteDepartUser
public void deleteDepartUser(ng.String _departuri, ng.String[] _useruris) 参数:_departuri -部门ID
useruris -用户帐号组成的数组
2.3.1.2.8给部门中添加用户(关系)
addDepartUser
public void addDepartUser(ng.String _departuri, ng.String[] _useruris) 参数:
_departuri -部门ID
useruris -用户帐号组成的数组
2.3.1.3 群组接口:
2.3.1.3.1查看群组
getBindGroupInfo
public UcstarBindGroup getBindGroupInfo(ng.String bindgroupid) 参数:
bindgroupid - 群组ID 返回:
返回群组对象
2.3.1.3.2增加群组
addBindGroup
public int addBindGroup(UcstarBindGroup bindGroup)
参数:bindGroup - 群组对象
返回:
0 增加成功
4 增加失败因:群组已存在
6 增加失败因:传入的对象UcstarBindGroup 对象为空或里面数据为空
2.3.1.3.3删除群组
deleteBindGroup
public int deleteBindGroup(ng.String bindgroup_id) 参数:
bindgroup_id - 群组ID 返回:
40 删除成功
2.3.1.3.4修改群组
updateBindGroup
public int updateBindGroup(UcstarBindGroup _bindgroup) 参数:
_bindgroup - 群组对象返回:
20 修改成功
23 修改失败因:所要修改的群组不存在
24 修改失败因:所要修改的群组名不能为空
2.3.1.3.5向群组中添加用户
addUserToBindGroup
public int addUserToBindGroup(ng.String _bindgroup_id, ng.String _user_ids, boolean _administrator) 参数:
_bindgroup_id - 群组ID
_user_ids - 用户列表,用逗号隔开
_administrator - 是否是管理员(true/false) 返回:
0 增加成功
7 增加失败该群组不存在
8 增加失败所要添加的用户账号本身不存在
2.3.1.3.6获取群组下的用户
getUsersByBindGoup
public UcstarUser[] getUsersByBindGoup(ng.String bindGroupId) 参数:
bindGroupId - 群组ID 返回:
返回用户列表数组
2.3.1.3.7获取群组中的人员列表
getBindGroupUserNames
public ng.String[] getBindGroupUserNames(ng.String _bgId) 参数:
_bgld -群组ID 返回:
群组下面的用户帐号数组
2.3.1.3.8删除群组中指定的用户
deleteUsersFromBindGroup
public int deleteUsersFromBindGroup(ng.String bindgroup_id, ng.String _user_ids) 参数:bindgroup_id -
_user_ids - 可以为多用户,但必需用逗号隔开。
如"1001,1002,1003"
返回:
40 删除成功
44 删除失败因:所要删除的用户不存在
45 删除失败因:所要删除用户的那个群组不存在
2.3.1.3.9删除该群组下的所有用户
deleteAllUsersFromBindGroup
public int deleteAllUsersFromBindGroup(ng.String bindgroup_id)
删除该群组下的所有用户
参数:bindgroup_id - 群组ID 返回:
40 删除成功
45 删除失败因:所要删除用户的那个群组不存在
2.3.1.3.10 修改群组中用户的管理状态
updataUserfromBindGroup
public int updataUserfromBindGroup(ng.String _bindgroup_id, ng.String _user_id, boolean _administrator) 参数:
_bindgroup_id - 群组ID
_user_id - 用户ID
_administrator - 是否是管理员返回:
20 修改成功
23 修改失败因:所要修改用户的那个群组不存在
2.3.1.3.11 根据父群组ID 获取子群组列表
getBindGroups
public UcstarBindGroup[] getBindGroups(ng.String _pbgId) 参数:
_pbgld -父群组ID 返回:
群组数组
2.3.1.4 消息接口:
2.3.1.4.1发送消息
sendMsg
public void sendMsg(ng.String username, ng.String deptid, ng.String content) 参数:username - 接收者帐号,多帐号用逗号隔开deptid - 接收部门ID, 多部门用逗号隔开content - 发送
内容
2.3.1.4.2发送消息 2
sendMessage
public int sendMessage(UcstarMessage _msg)参数:
_msg - 消息对象
返回:
返回成功或者失败: 0: 成功其他:失败
2.3.1.4.3广播消息
对所有的用户进行广播statue = 0; 广播所有在线用户statue = 1; 广播所有用户(包括离线用户)
broadcastMessageAll
public void broadcastMessageAll(ng.String message,
int statue)
参数:
message - 消息内容
type - 消息类型
0: 发送给所有在线用户
1: 发送给所有用户
2.3.1.4.4指定广播
发送广播给指定用户、部门、群组
broadcastMessage
public void broadcastMessage(ng.String message,
ng.String userIds,
ng.String deptIds, ng.String bindGroupIds, int
statue)
参数:
message - 消息内容
userIds - 用户ID(多用户用逗号隔开)
deptlds -部门ID(多部门用逗号隔开) bindGroupIds -群组ID(多群组用逗号隔开)
statue - 状态:0: 发送给在线用户1: 发送给在线和离线用户
2.3.1.4.5广播web 内容
客户端弹出类似QQ 新闻的内容broadcastWebApp public void broadcastWebApp(ng.String title,
ng.String content, ng.String url, int type, int statue, ng.String creater) 参数:
title - 弹出框标题content - 内容url - 内容对应的URL 显示type - 类型:statue - 状态
2.3.1.4.6发送消息给插件服务
sendPluginPacket public void sendPluginPacket(ng.String service,
ng.String sender, ng.String content) 参数:service - 插件服务名称,例如短信的是(SMS) content - 发送协议的内容
2.3.1.4.7发送短信
sendSms
public ng.String sendSms(UcstarSMS smsParam) 参数:smsParam - 返回:返回状态0; //发送失败
1; //发送成功
2; //正在发送,请等待结果
3; //未知
4; //发送失败,你的余额已不多,请尽快冲值
5; //发送失败,你的余额已不足
6; //发送失败,信息中包含敏感字符
7; //发送失败,你无权发送短信
8; //发送失败,网络传输错误
9; //发送失败,信息内容长度超过允许范围
10; 〃发送失败,你今天的短信数量已经用完
11; 〃发送失败,你的帐户中已经没有剩余短信
12; //发送失败,接收方号码有误
13; //短信网关未启动
14; 〃发送失几,短信数据数量已用完
2.3.1.5其他接口
2・3・1・5・1清空所有组织架构
清空数据库和缓存中的组织架构信息(用户和部门)
deleteAIIOrg
public void deIeteAIIOrg()
2・3・1・5・2刷新组织架构缓冲,刷新缓存
refreshOrg
public void refreshOrg()
详纟田请参看JAVA 的API 说明:ucstarserver_webserviceapi\webservice\index.html
polarbear 2008-12-25 2.3.1.5.3得到部门下用户状态
根据部门ID 得到部门下用户状态,flag=true :子部门用户状态也取出来getUserStateByDept
public UCUserStateExt[] getUserStateByDept(ng.String deptids, boolean flag) 参数:deptids -部门列表
flag -是否包含下级部门
返回:用户状态列表
2.3.1.5.4根据用户名返回其中在线用户状
getUserStateByUserIds
public UCUserStateExt[] getUserStateByUserIds(ng.String usernames) 参数:
user names -用户帐号列表
返回:
用户状态列表
2.3.1.5.5获取所有在线用户
public UcstarUser [] getAllOnlineUsers() ;参数:无
返回:在线用户列表
2.3.2 JAVAAPI BEAN 对象:
2.3.2.1 群组对象:
public class UcstarBindGroup {
private String groupid=""; // 群组ID
private String name=""; //群组名称
private String description="";// 群组描述private int usercount=0; //该群组下的总人数
填写
OA
private String parent="0"; // 父群组
2.3.2.2 部门对象
public class UcstarDept {
private String deptid=""; // 部门 ID private String name=""; // 部门名称 private String pdeptid="";// 父部门 ID private String info=""; //部门说明 private String sortId=""; // 排序号 private String type = "0"; // 部门类型
2.3.2.3 消息对象
public class UcstarMessage {
/** * 消息类型
* system: 系统消息 * broadcast: 广播消息 * chat: 普通消息 */
private String msgType="system"; /** * 消息来源 (OA,ERP 等 ) ---------------- */
private String msgResource="ucstar"; /** * 消息重要程度 (紧急 ,一般等等 ) */ private String msgScope="1"; /** * 消息内容 */
private String msgContent=""; /**
* 消息接收者 ( 逗号隔开 ) */ private String userIds=""; /**
* 消息接收部门 ( 逗号隔开 ) ----- 用户 ID */
选择 1
)
支持多帐号使用逗号隔开 支持多号码使用逗号隔开
private String deptIds=""; /**
* 消息接收群组 ( 逗号隔开 ) */ private String bindGroupIds=""; /** * 用户状态
* 0: 发送给所有在线用户 1: 发送给所有用户 */ private int statue = 0; /**
* 消息对应的 URL ( 详细内容 ) */ private String msgUrl=""; /**
* 发送者 */
private String sender=""; /**
* 群组名发送支持
*/
private String bindGroupNames=""; /**
* 使用姓名发送支持 */
private String userNames=""; /**
* 部门名称发送支持 */
private String deptNames="";
2.3.2.4 短信对象
public class UcstarSMS {
private String sender=""; //发送者 (用户帐号 private String receiver="";
// 接收者 -用户帐号
private String receiverNumber=""; //接收者 -电话号码
private String receiverDept=""; private String content=""; //接收者-部门ID 支持多部门使用逗号隔开//短信内容
2.3.2.5 用户对象
public class UcstarUser implements java.io.Serializable{ private String username; // 登陆账号名private String name; // 姓名private int age=0;// 用户年龄
private String password; // 用户密码(只在创建用户的时候用到,查询不显示用户密码) private String phone = ""; // 电话号码private String mobile = ""; // 手机号private int gender = 0; // 用户性别:private String sortid="" ;// 排序号
private String deptid="";// 所属部门多部门用逗号隔开private String email=""; // 用户邮箱private String voipphone=""; // 分机号
private String voipphonePass=""; // 分机号对应的密码private String type = 0; // 普通用户类型
2.3.2.6 状态对象
public class UcstarUserState {
private String state=""; //状态值0:离线
private String value="" ;
//1:在线
//2:离开返回的对象中包含离开信息
//-1:用户不存在
//其他:未知状态
// 离开信息
2.3.2.7 状态扩展对象
public class UCUserStateExt {
private String username; // 用户帐号
諛取认证码
*状态值 * 0 :离线 * 1 :在线 * 2 :离开 返回的对象中包含离开信息
* -1 :用户不存在
*其他: 未知状态
*/
private String state; /** *状态信息 */
private String value;
3单点登陆接口
OC-SSO 表示的是从 OA 到UcSTAR 的单点登录,即以 OA 系统为核心,UcSTAR 做为辅助 沟通工具的一个平
台解决方案。
B now ser-Artiw )^ 也虫 磁舷取亦 组件触岌
登陆接口采用activex 控件的形式
用户登录OA 系统,从UcStar 服务器上创建sessionkey 并调用Activex 控件带用户帐号和 sessionKey 启动 客户端。
(参考 "单点登陆 ssodemo\ucstar_ssologin.jsp') Activex 在安装客户端的时候已经被安装到系统中
注意:
jsp 中需要指定服务器地址和端口号
(http 端口号,默认9090),客户机需把 OA 系统添加到可信任站点,这
样才能支持调用 ucstar 的activex 控件。
浏览Cm 系绕 +认证冯的认证
UC Client
UcSTARSERVER 月服务器.
发送短信
短信插件
«4|-----------------------------
注册,接收短信
短信SDK客户的系统
'—1
bizHa
ndler(SMSPojo
如果是Domino系统,可使用Servlet:ucstarSSOLogin_jsp.class,传递三个参数:host(服务器地址)、port(服务器的Http端口)、username单点登陆的用户账号)。
4短信公共接口
4.1短信公共接口采用xmpp的注册方式:
客户端
4.1.1流程:
客户系统调用短信的SDK包将服务注册到短信公共插件上,这样的短信的SDK就可以对客户端的短信进行收发监控。
4.1.2接口说明:
SMSTest类功能:接收短信,发送短信。
(为测试类)短信接收格式:(发送人账号,接收
人手机号,[部门账号],信息内容)短信发送格式:(发送人的手机号,接收者账号,[部
门账号]信息内容)
SMSRecMo nitor 类功能:此类为必须类,用于操作短信。
操作方法为pojo)必须实现此方法
流程注解:首先服务器传入的短信信息,然后被SMSManager 类中监听到,并转化为SMSPojo 对象, 再传入到
bizHandler 方法中。
可在/** 用户操作方法块start***/ 后面进行短信处理,最后向服务器返回消息必须要,可不改。
PropertiesConstants 设置服务器IP 地址及端口
所用到的jar 为ucstar_sms.jar:ucstar_sms.jar 中类说明:
ExtendMessage 为自定义扩展消息类
ObserverInterface 为监听类接口
SMSObserverHand :抽象类,已实现ObserverInterface 接口,并实现监听的方法receive() ;SMSPojo 为短信类的POJO。