跳转到主要内容

请求

基本信息
HTTP URLhttps://oapi.dingtalk.io/topapi/v2/user/getuserinfo
HTTP MethodPOST
支持的应用类型appType-企业内部应用appType-第三方企业应用
权限要求permission-qyapi_base-调用企业API时需要具备的基本权限

查询参数

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

请求体

名称类型是否必填示例值描述
codeStringbab02f63c1e030fbbxxxx免登授权码,获取方式请参考: - 小程序免登授权码 - 微应用免登授权码 说明 此授权码五分钟内有效,且只能使用一次。

请求示例

curl -X POST "https://oapi.dingtalk.io/topapi/v2/user/getuserinfo" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=417124xxxx2a3c270d5' \
-d 'code=123456'
Java
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/user/getuserinfo");
OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();
req.setCode("bab02f63c1e030fbbxxxx");
OapiV2UserGetuserinfoResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
Python
# -*- coding: utf-8 -*-
import dingtalk.api

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

req.code="123456"
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 OapiV2UserGetuserinfoRequest;
$req->setCode("123456");
$resp = $c->execute($req, $access_token, "https://oapi.dingtalk.io/topapi/v2/user/getuserinfo");
Node.js
let { Config, OapiV2UserGetuserinfoParams, OapiV2UserGetuserinfoRequest } = require('./client.js');
let Client = require('./client.js').default
async function test() {
  const config = new Config()
  config.serverUrl = 'https://oapi.dingtalk.io/topapi/v2/user/getuserinfo'
  config.session = 'access_token'
  const params = new OapiV2UserGetuserinfoParams();
  params.code = 'bab02f63c1e030fbbxxxx'

  const request = new OapiV2UserGetuserinfoRequest()
  request.params = params
  const client = new Client(config)
  try {
    const res = await client.oapiV2UserGetuserinfo(request)
    console.log(res.body)
  } catch (err) {
    console.log(err)
  }
}
test()
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/topapi/v2/user/getuserinfo");
OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();
req.Code = "123456";
OapiV2UserGetuserinfoResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);

响应

响应体

名称类型示例值描述
request_idStringe8krly4vyiln请求ID。
errcodeNumber0返回码**。**
errmsgStringok对返回码的文本描述内容。
resultUserGetByCodeResponse返回结果。
useridStringuser456用户的userId。
device_idString12drtfxxxxx设备ID。
sysBooleantrue是否是管理员。 - true:是 - false:不是
sys_levelNumber1级别。 - 1:主管理员 - 2:子管理员 - 100:老板 - 0:其他(如普通员工)
associated_unionidStringN2o5U3axxxx用户关联的unionId。
unionidStringgliiW002zUxxxx用户unionId。
nameString张xx用户名字。

响应体示例

{
  "errcode": 0, 
  "result": {
    "associated_unionid": "N2o5U3axxxx", 
    "unionid": "gliiW0piiii02zBUjUxxxx", 
    "device_id": "12drtfxxxxx", 
    "sys_level": 1, 
    "name": "张xx", 
    "sys": true, 
    "userid": "userid123"
  }, 
  "errmsg": "ok"
}

错误码

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