跳转至

全量覆盖

主动调用通用参数请参阅全局说明

SDK示例:https://github.com/youduim/youdu-sdk-java

a、全量覆盖是将部门和成员的所有数据一次性请求过来;

b、覆盖完成后组织架构的部门及成员信息与请求的数据保持一致;

c、注意同级部门的sortId不能相等;

d、该接口立即返回。通过回调或查询接口得到同步结果。

发起全量覆盖

请求说明

POST方式请求URL: http://[SERVER:7080]/cgi/org/replaceall?accessToken=$access_token

请求结构

  {
      "deptList": [
             {
                   "id": $dept_id_1,
                   "name": "$dept_name",
                   "parentId": $parent_dept_id,
                   "sortId": $sort_id,
                   "alias":"alias"
             },
            {
                   "id": $dept_id_2,
                   "name": "$dept_name",
                   "parentId": $parent_dept_id,
                   "sortId": $sort_id,
                   "alias":"alias"
             }
     ],
      "userList": [
       {
         "userId": "$user_id",
         "name": "$user_name",
         "gender":  0,
         "mobile": "$user_mobile",
         "phone": "$user_phone",
         "email": "$user_email",
         "dept": [1],
                 "deptDetail": [
                    {
                         "deptId": 1,
                         "position":"$position_1",
                         "weight":1,
                         "sortId":1
                    }
                 ],
                 "authType": 2,
                 "passwd": md5($pwd)
        },
        {
         "userId": "$user_id",
         "name": "$user_name",
         "gender":  1,
         "mobile": "$user_mobile",
         "phone": "$user_phone",
         "email": "$user_email",
         "dept": [1,2],
                 "deptDetail":[
                      {
                            "deptId": 1,
                            "position":"$position_1",
                            "weight":2,
                            "sortId":2
                      },
                      {
                            "deptId": 2,
                            "position":"$position_2",
                            "weight":1,
                            "sortId":1
                      }
                 ],
                 "authType": 2,
                 "passwd": md5($pwd)
        }
      ],
      "callback":
      {
             "url": "$callback_url",
             "token": "$callback_signature_token"
      }
  }

参数说明

参数 必须 说明
deptList 部门列表
userList 用户列表
callback 回调信息。如填写则覆盖完成后,通过callback推送相应的通知。

deptList参数说明:

参数 必须 说明
id 部门id,整型。必须大于0
name 部门名称。不能超过32个字符(包括汉字和英文字母)
parentId 父部门id。根部门id为0
sortId 整型。在父部门中的排序值。值越大排序越靠前
alias 字符串。部门id的别名(通常存放以字符串表示的部门id)。唯一不为空。

userList参数说明:

参数 必须 说明
userId 用户id(帐号),企业内必须唯一。长度为1~64个字符(包括汉字和英文字母)
name 用户名称。长度为0~64个字符(包括汉字和英文字母,可为空)
gender 性别,整型。0表示男性,1表示女性
mobile 手机号码。企业内必须唯一
phone 电话号码
email 邮箱。长度为0~64个字符
dept 所属部门列表,不超过20个
deptDetail 所在部门内的详细信息
authType 认证方式:0本地认证,2第三方认证
passwd 原始密码md5加密后转16进制的小写字符串

deptDetail信息说明:

参数 必须 说明
deptId 部门id
position 职务名称
weight 职务权重。用户拥有多个职务时,权重值越大的职务排序越靠前
sortId 用户在部门中的排序,值越大排序越靠前

callback信息说明:

参数 必须 说明
url 接收通知的地址
token 用于生成签名。签名信息详见: 全局说明-->加解密说明-->消息体签名

返回结果

{
     "jobId": "$job_id"
}

参数说明

参数 说明
jobId 任务ID。请求成功时返回

获取全量覆盖结果

请求说明

GET方式请求URL: http://[SERVER:7080]/cgi/getjobresult?accessToken=$access_token&jobId=$job_id

参数说明

参数 必须 说明
jobId 全覆盖的任务号

返回结果

{
    "type": "org_replace_all",
    "result":3,
    "desc":"ok"
}

参数说明

参数 说明
type 任务类型。这里固定为org_replace_all
result 任务状态。1: 任务进行中,2: 同步任务已经存在,3: 任务成功完成,4: 任务失败
desc 结果描述

全量覆盖完成通知

回调数据格式

  {
      "fromUser": "sysOrgAssistant",
      "createTime": 1348831860,
      "packageId":  1234567890,
      "msgType": "event",
      "event":{
          "type": "org_replace_all",
      "jobId":"$job_id",
      "errcode":0,
      "errmsg":"ok"
       }
  }

参数说明

参数 说明
fromUser 消息发送者。这里固定为sysOrgAssistant
createTime 消息创建时间
packageId 接收到通知后需要回复消息体中的packageId(直接写回明文即可,不需要加密),表示成功接收,否则认为通知失败
msgType 消息类型。这里固定为event
type 通知事件类型。这里固定为org_replace_all
jobId 事件ID
errcode 全局返回码
errmsg 结果描述

回调响应格式

全局状态码(OK)