1. 服务商相关接口
1.1. 服务商接口签名算法
API接口地址均采用统一的签名算法进行鉴权,具体的签名过程如下
/*PHP代码示例*/
$timestamp = time();
$api_token = 'mykey';
$salt = 'party';
$channel_id = 3;
$signature= sha1($timestamp . $api_token .$salt . $channel_id);
api_token 注册服务商时生成,由第三方提供,参考 服务商注册
timestamp 单位为秒,从1970年1月1日至今的秒数
salt = party 代表拉取组织信息接口的签名
salt = auth 代表登录校验接口的签名
channel_id 渠道编号,参考 预分配信息表
接口需要自行根据此算法进行接口的鉴权。
1.2. 数据拉取协议
接口地址
/PARTY_API?data2pull=user, department
请求方式
POST
参数说明
参数 | 说明 |
---|---|
seq | 拉取序列号 |
signature | 拉取签名 参考服务商接口签名算法 |
timestamp | 时间戳(单位为秒,从1970年1月1日至今的秒数),signature的生成也用到了这个时间 |
channel_id | 服务商ID (云助手提供) 详见预分配信息表 |
channel_code | 异构系统租户code(在云助手新增组织时填入) |
返回值格式 成功
{
"errcode": 0,
"new_seq": "新的序列号",
"data": "新增、修改的信息(data域)",
"data_del": "需要删除的信息guid(data_del域)",
"is_complete": 0
}
失败
{
"errcode": "1001",
"errmsg": "code对应的错误描述的备注信息"
}
返回参数说明
参数 | 说明 |
---|---|
new_seq | 新的序列号,当is_complete为0时,会使用新的seq再次拉取数据 |
is_complete | 数据拉取是否完成,0:未完成 1 已完成,所有数据拉取完毕 |
备注
- 1001:签名校验失败
- 1002:不合法的channel_code
- 1003:不合法的拉取对象
- 1004:时间戳失效
- 1005:access_token不合法
1.3. 组织架构获取接口
接口地址
/PARTY_API?data2pull=department
请求格式示范
参数 | 说明 |
---|---|
seq | 拉取序列号 |
signature | 拉取签名 |
timestamp | 时间戳(单位为秒,从1970年1月1日至今的秒数),signature的生成也用到了这个时间 |
channel_id | 服务商ID (云助手提供) 详见预分配信息表 |
channel_code | 异构系统租户code(在云助手新增组织时填入) |
返回格式示范
{
"errcode": 0,
"new_seq": "",
"data": [
{
"dept_guid": "b8c961df-f188-82d6-96ee-e3973e909e26",
"dept_name": "采购助手",
"parent_guid": "",
"sort": 0,
"is_company": 0,
"is_end_company": 0
}
],
"data_del": [],
"is_complete": 1
}
返回参数说明
参数 | 说明 |
---|---|
dept_guid | 部门第三方组织唯一标识 |
dept_name | 用户第三方组织名称 |
parent_guid | 部门父部门ID(根部门,此字段为空) |
sort | 层级排序 ,升序排列,可选 |
is_company | 是否公司,可选 |
is_end_company | 是否末级公司,可选 |
1.4. 用户获取接口
接口地址
/PARTY_API?data2pull=user
请求格式示范
参数说明
参数 | 说明 |
---|---|
seq | 拉取序列号 |
signature | 拉取签名 |
timestamp | 时间戳(单位为秒,从1970年1月1日至今的秒数),signature的生成也用到了这个时间 |
channel_id | 服务商ID (云助手提供) 详见预分配信息表 |
channel_code | 异构系统租户code(在云助手新增组织时填入) |
返回格式示范
{
"errcode": 0,
"new_seq": "",
"data": [
{
"user_name": "龙卫民",
"user_code": "16100000001",
"tel": "16100000001",
"user_guid": "106700",
"email": "123@123.com",
"is_disabled": 1,
"depts": [
"b8c961df-f188-82d6-96ee-e3973e909e26"
]
},
{
"user_name": "zyj账号06",
"user_code": "16100000005",
"tel": "16100000005",
"user_guid": "221976",
"email": "123@123.com",
"is_disabled": 1,
"depts": [
"b8c961df-f188-82d6-96ee-e3973e909e26"
]
},
{
"user_name": "denghs",
"user_code": "16100000007",
"tel": "16100000007",
"user_guid": "222030",
"email": "123@123.com",
"is_disabled": 1,
"depts": [
"b8c961df-f188-82d6-96ee-e3973e909e26"
]
},
{
"user_name": "测试黄喻",
"user_code": "16100000009",
"tel": "16100000009",
"user_guid": "222062",
"email": "123@123.com",
"is_disabled": 0,
"depts": [
"b8c961df-f188-82d6-96ee-e3973e909e26"
]
},
{
"user_name": "同步测试名字",
"user_code": "16100000004",
"tel": "16100000004",
"user_guid": "222063",
"email": "123@123.com",
"is_disabled": 1,
"depts": [
"b8c961df-f188-82d6-96ee-e3973e909e26"
]
}
],
"data_del": ["b8c961df-f188-82d6-96ee-e3973e909e29"],
"is_complete": 1
}
返回参数说明
参数 | 说明 |
---|---|
user_guid | 用户第三方组织唯一标识 |
user_code | 用户第三方组织登录账号,可以是手机号 |
user_name | 用户第三方组织显示名称 |
tel | 用户手机号,可选 |
用户邮箱,可选 | |
depts | 用户所属部门GUID数组 |
is_disabled | 用户是否禁用 0:启用 1:禁用 |
1.5. 推送用户和部门
此接口由云助手团队提供 接口地址
/api/tenant-open/third-party-push
请求格式示范
参数说明
参数 | 说明 |
---|---|
action | all,increment,(必填)all-代表全量拉取 increment-增量拉取,会根据上次的同步seq继续同步 |
signature | 拉取签名(必填) |
timestamp | 时间戳(必填)(单位为秒,从1970年1月1日至今的秒数),signature的生成也用到了这个时间 |
channel_id | 服务商ID(必填) (云助手提供) 详见预分配信息表 |
channel_code | 异构系统租户code(必填)(在云助手新增组织时填入) |
notice_url | 回调接口(选填),由第三方提供回调地址,在系统拉取完后会通知到此接口 |
返回格式示范
{
"errcode": 0,
"errmsg":"ok",
"data": "已收到请求!",
}
1.6. notice_url推送回调接口返回数据结构
在用户设置了回调接口后,云助手服务器会在执行完拉取第三方通讯录后调用此接口,返回此接口执行结果
返回格式示范
{
"channel_id": "7",
"channel_code": "dev_fangl",
"timestamp": "1525309650",
"signature": "13bab3e0c8620adb7b3c1af9bd68b6970f10dda8",
"result": "finish",
"errcode":0
}
{
"channel_id": "7",
"channel_code": "dev_fangl",
"timestamp": "1525309650",
"signature": "13bab3e0c8620adb7b3c1af9bd68b6970f10dda8",
"result": "错误信息",
"errcode":"错误码"
}
1.7. 创建第三方通讯录
此接口由云助手团队提供
此接口作用是可以在云助手租户外部联系人中创建一个通讯录,不会自动拉取组织架构和用户信息,如果需要拉取,则需要调用上面 推送用户和部门接口
接口地址
/api/tenant-open/create-party
请求格式示范
参数说明
参数 | 说明 |
---|---|
corpid | 云助手中的租户corpid |
signature | 拉取签名(必填) |
timestamp | 时间戳(必填)(单位为秒,从1970年1月1日至今的秒数),signature的生成也用到了这个时间 |
channel_id | 服务商ID(必填) (云助手提供) 详见预分配信息表 |
channel_code | 异构系统租户code(必填)(在云助手新增组织时填入) |
party_name | 外部联系人中的组织名称 (必填) |
show_in_yzs | 是有在云助手通讯录中显示组织架构(选填),1-显示 0-不显示,默认为0即不显示 |
third_pwd_type | 密码生成方式 1-账号相同 2-随机6位数字(选填)默认值为2即随机密码 |
返回格式示范
{
"errcode": 0,
"errmsg":"ok",
"data": "已收到请求!",
}
2. 套件相关接口
2.1. 套件接口签名算法
API接口地址均采用统一的签名算法进行鉴权,具体的签名过程如下
/*PHP代码示例*/
$timestamp = time();
$api_token = 'mykey';
$salt = 'suite-api-auth';
$signature= sha1($timestamp . $api_token .$salt);
api_token 注册套件时生成,由第三方提供,,参考 套件应用注册
timestamp 单位为秒,从1970年1月1日至今的秒数
salt = suite-api-auth 代表获取套件相关信息,如获取应用授权
接口需要自行根据此算法进行接口的鉴权。
2.2. 应用权限获取接口
接口地址(第三方提供)比如 http://bms.myfuwu.com.cn/m/DataApi/app/get-auth-apps
请求方式:
POST
请求格式示范
参数说明
字段名称 | 说明 |
---|---|
tenant_code | 异构系统租户code(在云助手新增组织时填入) |
suite_id | 套件ID(云助手提供) 详见预分配信息表 |
signature | 签名,参考套件接口签名算法 |
timestamp | 时间戳,单位为秒,从1970年1月1日至今的秒数),signature的生成也用到了这个时间 |
返回格式示范
{
"success": 1,// 1 成功 0 失败
"errmsg": "",
"errcode": 0,
"data": [
{
"app_code": "MobileCheckRoom",
"auth_status": 1
},
{
"app_code": "MobileCheckQuality",
"auth_status": 1
}
]
}
返回参数说明
参数 | 说明 |
---|---|
app_code | 第三方的应用code |
auth_status | 0:代表无权限,1:代表有权限 |
备注
- 1001:签名校验失败
- 1002:不合法的tenant_code
- 1003:不合法的suite_id
- 1004:时间戳失效