跳转到主要内容

创建SSO企业账号

请求

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

查询参数

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

请求体

名称类型是否必填示例值描述
useridStringzhangsan员工唯一标识ID(不可修改),长度为1~64个字符。 说明 - 企业内必须唯一。 - 如果不传,将自动生成一个userid。
exclusive_accountBooleantrue必须填true,表示要创建企业账号 说明 仅适用于企业账号。
exclusive_account_typeStringsso必须填sso,表示SSO企业账号。 说明 仅适用于SSO企业账号。
nameString张三员工名称,长度最大80个字符。
dept_id_listString”2,3,4”所属部门ID列表,多个部门ID使用英文,隔开,每次调用最多传100个部门ID。
telephoneString010-86123456-2345分机号,长度最大50个字符。 说明 分机号是唯一的,企业内不能重复。
job_numberString4员工工号,长度最大为50个字符。
titleString技术总监职位,长度最大为200个字符。
emailStringtest@xxx.com员工个人邮箱,长度最大50个字符。 说明 员工邮箱是唯一的,企业内不能重复。
org_emailStringtest@xxx.com员工的企业邮箱,长度最大100个字符。 说明 需满足以下条件,此字段才生效:员工已开通企业邮箱。
org_email_typeStringprofession员工的企业邮箱类型: - profession: 标准版。 - **base:**基础版。
work_placeString未来park办公地点,长度最大100个字符。
remarkString备注信息备注,长度最大2000个字符。
dept_order_listObject[]员工在对应的部门中的排序。
dept_idNumber2部门ID。
orderNumber1员工在部门中的排序,数值越大,排序越靠前。
dept_title_listObject[]员工在对应的部门中的职位。
dept_idNumber2部门ID。
titleString资深产品经理员工在部门中的职位。
extensionString{"爱好":"旅游","年龄":"24"}扩展属性,可以设置多种属性,最大长度 2000 个字符。说明 - 手机上最多只能显示 10 个扩展属性。 - 在使用该参数前,需要先在钉钉管理后台增加该属性,然后再调用接口进行赋值,例如,在通讯录 > 内部通讯录设置 > 通讯录信息页面,单击添加自定义字段按钮。 - 该字段的值支持链接类型填写,同时链接支持变量通配符自动替换,目前支持通配符有 userid、corpid。例如 {"爱好":"[爱好](http://www.dingtalk.io?userid=#userid#&corpid=#corpid#)"}
senior_modeBooleanfalse是否开启高管模式,默认值false。 - true:开启。 说明 - 开启后,手机号码对所有员工隐藏。 - 普通员工无法对其发DING、发起钉钉商务电话。 - 高管之间可以发DING、发起钉钉商务电话。 - false:不开启。
hired_dateNumber1597573616828入职时间,Unix时间戳,单位毫秒。
manager_useridString001直属主管的userId。
exclusive_mobileString+86-13412341234企业账号手机号。 说明 仅适用于企业账号。
avatarMediaIdString@lALPDfmVUw19YdrNA-jNA-g创建本组织企业账号时可指定头像MediaId,只支持jpg/png。 可调用上传媒体文件接口获取。 说明 仅适用于企业账号。
nicknameString昵称创建本组织企业账号时可指定昵称。 说明 仅适用于企业账号。

请求示例

curl -X POST "https://oapi.dingtalk.io/topapi/v2/user/create" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=871c1df6-bcd5-4acb-b2e9-815b7246d85c' \
-d 'userid=zhangsan'
-d 'exclusive_account=true' \
-d 'name=张三' \
-d 'dept_id_list=2,3,4'
Java
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/user/create");
OapiV2UserCreateRequest req = new OapiV2UserCreateRequest();
req.setUserid("12345678");
req.setName("sso企业账号");
req.setHideMobile(true);
req.setTelephone("123");
req.setJobNumber("123");
req.setTitle("技术总监");
req.setEmail("test@xxx.com");
req.setOrgEmail("ceshi1");
req.setWorkPlace("北京");
req.setRemark("备注信息");
req.setDeptIdList("486882146,609916162");
OapiV2UserCreateRequest.DeptOrder deptOrder1 = new OapiV2UserCreateRequest.DeptOrder();
deptOrder1.setDeptId(486882146L);
deptOrder1.setOrder(2L);
OapiV2UserCreateRequest.DeptOrder deptOrder2 = new OapiV2UserCreateRequest.DeptOrder();
deptOrder2.setDeptId(609916162L);
deptOrder2.setOrder(1L);
ArrayList<OapiV2UserCreateRequest.DeptOrder> deptOrderList = new ArrayList<>();
deptOrderList.add(deptOrder1);
deptOrderList.add(deptOrder2);
req.setDeptOrderList(deptOrderList);
OapiV2UserCreateRequest.DeptTitle deptTitle1 = new OapiV2UserCreateRequest.DeptTitle();
deptTitle1.setTitle("测试岗位");
deptTitle1.setDeptId(486882146L);
OapiV2UserCreateRequest.DeptTitle deptTitle2 = new OapiV2UserCreateRequest.DeptTitle();
deptTitle2.setTitle("测试负责人");
deptTitle2.setDeptId(609916162L);
ArrayList<OapiV2UserCreateRequest.DeptTitle> deptTitleList = new ArrayList<>();
deptTitleList.add(deptTitle1);
deptTitleList.add(deptTitle2);
req.setDeptTitleList(deptTitleList);
req.setExtension("{\"爱好\":\"旅游\",\"年龄\":\"24\"}");
req.setSeniorMode(false);
req.setHiredDate(1650351000000L);
req.setManagerUserid("001");
req.setOrgEmailType("base");
req.setExclusiveAccount(true);
req.setExclusiveAccountType("sso");
req.setExclusiveMobile("150xxxx");
req.setAvatarMediaId("@lADPDfYH3A-xxx");
req.setNickname("小钉1");
OapiV2UserCreateResponse rsp = client.execute(req, "");
System.out.println(rsp.getBody());
Python
import dingtalk.api

req=dingtalk.api.OapiV2UserCreateRequest("https://oapi.dingtalk.io/topapi/v2/user/create")
req.userid="zhangsan"
req.name="张三"
req.dept_id_list="2,3,4"
req.exclusive_account=true

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 OapiV2UserCreateRequest;
$req->setUserid("zhangsan");
$req->setName("张三");
$req->setDeptIdList("\"2,3,4\"");
$req->setExclusiveAccount("true");
$resp = $c->execute($req, $access_token, "https://oapi.dingtalk.io/topapi/v2/user/create");
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/user/create");
OapiV2UserCreateRequest req = new OapiV2UserCreateRequest();
req.Userid = "zhangsan";
req.Name = "张三";
req.ExclusiveAccount = true;
OapiV2UserCreateResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);

响应

响应体

名称类型示例值描述
errcodeNumber0错误码。0代表成功。
errmsgStringok错误信息。
resultObject返回结果。
useridStringzhangsan员工id。
unionIdStringxxxx员工唯一id。

响应体示例

{
  "errcode":"0",
  "result":{
    "unionId":"xxxx",
    "userid":"zhangsan"
  },
  "errmsg":"ok"
}

错误码

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