钉钉二次开发-组织机构同步 获取用户信息 单点登录接口

本文档详细介绍了钉钉的二次开发接口,包括创建、更新和删除用户,获取用户详情,获取部门用户列表和详情,管理员相关操作如获取管理员列表和权限范围,以及通过unionid和手机号查找userid等功能,为企业内部管理提供便利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建用户

 

调试工具在线调试

请求方式:POST(HTTPS)

请求地址:https://oapi.dingtalk.com/user/create?access_token=ACCESS_TOKEN

请求包结构体

{
    "userid": "zhangsan",
    "name": "张三",
    "orderInDepts" : "{1:10, 2:20}",
    "department": [1,2],
    "position": "产品经理",
    "mobile": "1xxxxxxxxxx",
    "tel" : "xxxx-xxxxxxxx",
    "workPlace" :"",
    "remark" : "",
    "email": "test@xxx.com",
    "orgEmail": "test@xxx.com",
    "jobnumber": "xxx",
    "isHide": false,
    "isSenior": false,
    "extattr": {
                "爱好":"旅游",
                "年龄":"24"
                }
}

 

参数说明

参数

类型

必须

说明

access_token

String

调用接口凭证

userid

String

员工在当前企业内的唯一标识,也称staffId。可由企业在创建时指定,并代表一定含义比如工号,创建后不可修改,企业内必须唯一。

长度为1~64个字符,如果不传,服务器将自动生成一个userid。

name

String

成员名称。

长度为1~64个字符

orderInDepts

JSONObject

在对应的部门中的排序,

Map结构的json字符串,key是部门的id, value是人员在这个部门的排序值

department

List

数组类型,数组里面值为整型,成员所属部门id列表

position

String

职位信息。

长度为0~64个字符

positionInDepts

JSONObject

设置用户在每个部门下的职位。

Map结构的json字符串,

Map的Key是deptId,表示部门id,

Map的Value是职位,表示在这个部门下的职位

mobile

String

手机号码,企业内必须唯一,不可重复。如果是国际号码,请使用+xx-xxxxxx的格式

tel

String

分机号,长度为0~50个字符,企业内必须唯一,不可重复

workPlace

String

办公地点,长度为0~50个字符

remark

String

备注,长度为0~1000个字符

email

String

邮箱。长度为0~64个字符。企业内必须唯一,不可重复

orgEmail

String

员工的企业邮箱,员工的企业邮箱已开通,才能增加此字段, 否则会报错

jobnumber

String

员工工号。对应显示到OA后台和客户端个人资料的工号栏目。

长度为0~64个字符

isHide

Boolean

是否号码隐藏。true表示隐藏,false表示不隐藏。

隐藏手机号后,手机号在个人资料页隐藏,但仍可对其发DING、发起钉钉免费商务电话。

isSenior

Boolean

是否高管模式。true表示是,false表示不是。

开启后,手机号码对所有员工隐藏。普通员工无法对其发DING、发起钉钉免费商务电话。高管之间不受影响。

extattr

JSONObject

扩展属性,可以设置多种属性(手机上最多显示10个扩展属性,具体显示哪些属性,请到OA管理后台->设置->通讯录信息设置和OA管理后台->设置->手机端显示信息设置)。

该字段的值支持链接类型填写,同时链接支持变量通配符自动替换,目前支持通配符有:userid,corpid。示例: [工位地址](http://www.dingtalk.com?userid=#userid#&corpid=#corpid#) 

hiredDate

Number

入职时间,Unix时间戳,单位ms

SDK请求示例(JAVA)

DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/create");
OapiUserCreateRequest request = new OapiUserCreateRequest();
request.setUserid("zhangsan");
request.setMobile("1xxxxxxxxxx");
request.setName("张三");

// 需要用字符串, "[100,200]" 这种格式
List<Long> departments = new ArrayList<Long>();
departments.add(100L);
departments.add(200L);
request.setDepartment(JSON.toJSONString(departments));

OapiUserCreateResponse response = client.execute(request, accessToken);

 

返回结果

{
    "errcode": 0,
    "errmsg": "ok",
    "userid": "zhangsan"
}

 

参数

说明

errcode

返回码

errmsg

对返回码的文本描述内容

userid

员工唯一标识

更新用户

 

调试工具在线调试

请求方式:POST(HTTPS)

请求地址:https://oapi.dingtalk.com/user/update?access_token=ACCESS_TOKEN

请求包结构体

{
    "userid": "zhangsan",
    "name": "张三",
    "department": [1, 2],
    "orderInDepts": "{1:10}",
    "position": "产品经理",
    "tel" : "xxxx-xxxxxxxx",
    "workPlace" :"",
    "remark" : "",
    "email": "test@xxx.com",
    "orgEmail": "test@xxx.com",
    "jobnumber": "xxx",
    "isHide": false,
    "isSenior": false,
    "extattr": {
                "爱好":"旅游",
                "年龄":"24"
                }
}

 

参数说明(如果非必须的字段未指定,则钉钉后台不改变该字段之前设置好的值)

参数

类型

必须

说明

access_token

String

调用接口凭证

lang

String

通讯录语言

(默认zh_CN另外支持en_US)

userid

String

员工id,不可修改,长度为1~64个字符

name

String

成员名称,长度为1~64个字符

department

List

成员所属部门id列表

orderInDepts

JSONObject

实际是Map的序列化字符串,

Map的Key是deptId,表示部门id,

Map的Value是order,表示排序的值,

列表是按order的倒序排列输出的,即从大到小排列输出的

position

String

职位信息。长度为0~64个字符

positionInDepts

JSONObject

设置用户在每个部门下的职位。

Map结构的json字符串,

Map的Key是deptId,表示部门id,

Map的Value是职位,表示在这个部门下的职位

tel

String

分机号,长度为0~50个字符

workPlace

String

办公地点,长

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值