跳转到主要内容
调用本接口,添加企业外部联系人。

请求

基本信息
HTTP URLhttps://oapi.dingtalk.io/topapi/extcontact/create
HTTP MethodPOST
支持的应用类型appType-企业内部应用
权限要求permission-qyapi_ext_write-企业外部联系人写权限

查询参数

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

请求体

名称类型是否必填示例值描述
contactOpenExtContact外部联系人信息。
titleString开发工程师职位。
label_idsNumber[][1561077317,1561077310]标签列表,可调用获取外部联系人标签列表接口查询标签信息。 参考企业如何自定义标签组添加自定义标签。每次调用最多传20个labelId。
share_dept_idsNumber[][1,2,3]共享给的部门ID,可调用获取子部门ID列表接口获取,每次调用最多传20个部门ID。
addressString北京市地址。
remarkString王经理备注。
follower_user_idStringmanager4220负责人的userId,可通过根据手机号查询用户接口获取userId, 每次调用最多传20个userId。
nameString张xx外部联系人的姓名。
state_codeString86手机号国家码。
company_nameString钉钉外部联系人的企业名称。
share_user_idsString[][“023420013644”]共享给的员工userid列表,可通过根据手机号查询用户接口获取userId,每次调用最多传20个userId。
mobileString130xxxx8888外部联系人的手机号。

请求示例

curl -X POST "https://oapi.dingtalk.io/topapi/extcontact/create" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=d5f0efxxxx9fa9e1' \
-d 'contact=null'
Java
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/extcontact/create");
OapiExtcontactCreateRequest req = new OapiExtcontactCreateRequest();
OapiExtcontactCreateRequest.OpenExtContact contact = new OapiExtcontactCreateRequest.OpenExtContact();
contact.setTitle("开发工程师");
contact.setLabelIds(Arrays.asList(1561077317L,1561077310L));
contact.setShareDeptIds(Arrays.asList(1L,2L,3L));
contact.setFollowerUserId("manager4220");
contact.setName("张xx");
contact.setStateCode("86");
contact.setCompanyName("钉钉");
contact.setShareUserIds(Arrays.asList("023420013644"));
contact.setMobile("130xxxx8888");
req.setContact(contact);
OapiExtcontactCreateResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
Python
import dingtalk.api

req=dingtalk.api.OapiExtcontactCreateRequest("https://oapi.dingtalk.io/topapi/extcontact/create")

req.contact=""
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 OapiExtcontactCreateRequest;
$contact = new OpenExtContact;
$contact->title="开发工程师";
$contact->label_ids="[1,2,3]";
$contact->share_dept_ids="[1,2,3]";
$contact->address="地址内容";
$contact->remark="备注内容";
$contact->follower_user_id="023420013645";
$contact->name="张三";
$contact->state_code="86";
$contact->company_name="钉钉";
$contact->share_user_ids="[\"023420013644\"]";
$contact->mobile="13088888888";
$req->setContact($contact);
$resp = $c->execute($req, $access_token, "https://oapi.dingtalk.io/topapi/extcontact/create");
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/extcontact/create");
OapiExtcontactCreateRequest req = new OapiExtcontactCreateRequest();
OapiExtcontactCreateRequest.OpenExtContactDomain obj1 = new OapiExtcontactCreateRequest.OpenExtContactDomain();
obj1.Title = "开发工程师";
obj1.LabelIds = new long[] { 1,2,3 };
obj1.ShareDeptIds = new long[] { 1,2,3 };
obj1.Address = "地址内容";
obj1.Remark = "备注内容";
obj1.FollowerUserId = "023420013645";
obj1.Name = "张三";
obj1.StateCode = "86";
obj1.CompanyName = "钉钉";
obj1.ShareUserIds = ""023420013644"";
obj1.Mobile = "13088888888";
req.Contact_ = obj1;
OapiExtcontactCreateResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);

响应

响应体

名称类型示例值描述
useridString123420013632外部联系人的userId。
errcodeNumber0返回码。
errmsgStringok返回码描述。
request_idString6idz5ss49kkj请求ID。

响应体示例

{
  "errcode":0,
  "userid":"011250026469774889",
  "request_id":"6idz5ss49kkj"
}

错误码

若调用该接口报错,可根据错误信息在全局错误码文档中查找解决方案。
错误码(errcode)错误码描述(errmsg)解决方案
33009无效的tokenGrantType请检查access_token是否合法
40036参数为空请检查上述必填参数是否都已经填写
60103无效的电话号码请检查电话号码是否正确
60204需要外部联系人标签请填上 label_ids
60205未开通外部联系人功能需要用户提供授权函后,进行开通外部联系人功能
43007需要授权请确认access_token是否有操作权限
60112无效的用户名称请确认用户名称是否正确
22005该外部联系人已经存在请确认外部联系人手机号是否正确
-1系统繁忙请稍后再试