跳转到主要内容
调用本接口更新指定的用户信息。

接口调用说明

调用本接口可以实现更新普通账号用户信息或更新企业账号用户信息。由于在调用时参数使用有较多区别,为便于开发者查看,按照新用户的账号类型进行拆分优化:
  • 更新普通用户信息,接口说明文档请查看本文介绍。
  • 更新企业账号用户信息,接口说明文档请参见更新企业账号用户信息

请求

基本信息
HTTP URLhttps://oapi.dingtalk.io/topapi/v2/user/update
HTTP MethodPOST
支持的应用类型appType-企业内部应用
权限要求permission-qyapi_manage_addresslist-通讯录数据管理权限

查询参数

名称类型是否必填示例值描述
access_tokenStringbe3Fxxxx调用该接口的应用凭证,通过获取企业内部应用的access_token接口获取。

请求体

名称类型是否必填示例值描述
useridStringuser123员工的userId。
nameString张三员工名称,长度最大80个字符。
hide_mobileBooleanfalse是否号码隐藏: - true:隐藏 隐藏手机号后,手机号在个人资料页隐藏,但仍可对其发DING、发起钉钉免费商务电话。 - false:不隐藏
telephoneString010-86123456-2345分机号,长度最大50个字符。 说明 分机号是唯一的,企业内不能重复。
job_numberString4员工工号,长度最大50个字符。
manager_useridString0001直属主管的userId。
titleString技术总监职位,长度最大200个字符。
emailStringtest@xxx.com员工邮箱,长度最大50个字符。 说明 员工邮箱是唯一的,企业内不能重复。
org_emailStringtest@xxx.com员工的企业邮箱。 说明 需满足以下条件,此字段才生效:员工的企业邮箱已开通。
work_placeString未来park办公地点,长度最大100个字符。
remarkString备注信息备注,长度最大2000个字符。
dept_id_listString”2,3,4”所属部门ID列表。
dept_order_listDeptOrder[]员工在对应的部门中的排序。
dept_idNumber2部门ID。
orderNumber1员工在部门中的排序。数值越大,排序越靠前。
extensionString{"爱好":"旅游","年龄":"24"}扩展属性,长度最大 2000 个字符。 说明 - 手机上最多只能显示 10 个扩展属性。 - 如果给员工设置有 10 个扩展属性字段,更新时即使扩展属性字段值没变,也必须要将 10 个扩展属性字段都传进去。如果只传其中 1 个,那么剩下 9 个字段都会被清空。 - 在使用该参数前,需要先在钉钉管理后台 > 通讯录 > 内部通讯录设置 > 成员字段管理增加该属性。 - 该字段的值支持链接类型填写,同时链接支持变量通配符自动替换,目前支持通配符有:userid 和 corpid。示例:[工位地址](http://www.dingtalk.io?userid=#userid#&corpid=#corpid#)
ext_attrs_update_modeNumber1拓展属性自定义字段更新模式: - 0:覆盖方式 - 1:追加方式 默认是覆盖。
senior_modeBooleanfalse是否开启高管模式,默认值false。 - true:开启。 说明 - 开启后,手机号码对所有员工隐藏。 - 普通员工无法对其发DING、发起钉钉商务电话。 - 高管之间可以发DING、发起钉钉商务电话。 - false:不开启。
hired_dateNumber1597573616828入职时间,UNIX时间戳,单位毫秒。
languageStringzh_CN通讯录语言,取值。 - zh_CN:中文(默认值)。 - en_US:英文。
force_update_fieldsStringmanager_userid强制更新的字段,支持清空指定的字段,多个字段之间使用逗号分隔。目前支持字段: manager_userid
dept_position_listDeptPosition[]部门内任职信息。
extension_i18nJson{"爱好": {"zh_CN": "旅游", "en_US": "travel", "aJP": "旅行"}}扩展属性的国际化值。

请求示例

curl -X POST "https://oapi.dingtalk.io/topapi/v2/user/update" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=c6c3c34d-23dd-4da7-9901-0af1ebceaf80' \
-d 'name=%E5%BC%A0%E4%B8%89' \
-d 'telephone=010-86123456-2345' \
-d 'hide_mobile=false' \
-d 'userid=zhangsan'
Java
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/user/update");
OapiV2UserUpdateRequest req = new OapiV2UserUpdateRequest();
req.setUserid("zhangsan");
req.setName("张三");
req.setHideMobile(false);
req.setTelephone("010-86123456-2345");
req.setJobNumber("4");
req.setManagerUserid("0001");
req.setTitle("技术总监");
req.setEmail("test@xxx.com");
req.setOrgEmail("test@xxx.com");
req.setWorkPlace("未来park");
req.setRemark("备注备注");
req.setDeptIdList("2,3,4");
List<DeptOrder> list2 = new ArrayList<DeptOrder>();
DeptOrder obj3 = new DeptOrder();
list2.add(obj3);
obj3.setDeptId(2L);
obj3.setOrder(1L);
req.setDeptOrderList(list2);
req.setExtension("{\"爱好\":\"旅游\",\"年龄\":\"24\"}");
req.setSeniorMode(false);
req.setHiredDate(1597573616828L);
req.setLanguage("zh_CN");
req.setForceUpdateFields("manager_userid");
OapiV2UserUpdateResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
Python
import dingtalk.api

req=dingtalk.api.OapiV2UserUpdateRequest("https://oapi.dingtalk.io/topapi/v2/user/update")

req.userid="zhangsan"
req.name="张三"
req.hide_mobile=false
req.telephone="010-86123456-2345"

try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
PHP
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiV2UserUpdateRequest;
$req->setUserid("zhangsan");
$req->setName("张三");
$req->setHideMobile("false");
$req->setTelephone("010-86123456-2345");
$resp = $c->execute($req, $access_token, "https://oapi.dingtalk.io/topapi/v2/user/update");
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/user/update");
OapiV2UserUpdateRequest req = new OapiV2UserUpdateRequest();
req.Userid = "zhangsan";
req.Name = "张三";
req.Mobile = "13800138000";
req.HideMobile = false;
OapiV2UserUpdateResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);

响应

响应体

名称类型示例值描述
errcodeNumber0返回码,0代表成功。
errmsgString找不到该用户调用失败时返回的错误信息。

响应体示例

{
  "errcode": 0,
  "request_id": "55o5i31j4cg8"
}

错误码

若调用该接口报错,可根据错误信息在全局错误码文档中查找解决方案。