跳转到主要内容
调用本接口通过免登授权码获取用户基本信息。

请求

基本信息
HTTP URLhttps://oapi.dingtalk.io/sns/getuserinfo_bycode
HTTP MethodPOST
支持的应用类型appType-企业内部应用appType-第三方企业应用
权限要求permission-open_app_api_base-获取钉钉开放接口用户访问凭证的基础权限

查询参数

参数参数类型是否必选描述
accessKeyString应用的AppId。
timestampString当前时间戳, 单位毫秒。
signatureString用timestamp+“\n”+AppSecret为签名字符串,AppSecret为签名密钥,使用算法HmacSHA256计算的签名值。

请求体

参数参数类型是否必选描述
tmp_auth_codeString用户授权给钉钉开放应用的免登授权码,通过调用JSAPI dd.getAuthCode获取,参考免登授权码。

请求示例

curl -X POST "https://oapi.dingtalk.io/sns/getuserinfo_bycode" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'tmp_auth_code=abcdef'
Java
DefaultDingTalkClient  client = new DefaultDingTalkClient("https://oapi.dingtalk.io/sns/getuserinfo_bycode");
// 如果您使用的SDK中不存在该类,请下载最新的SDK
OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
req.setTmpAuthCode("4a2c5695b78738d495f47b5fee9160cd");
OapiSnsGetuserinfoBycodeResponse response = client.execute(req,"yourAppId","yourAppSecret");
Python
import dingtalk.api

req = dingtalk.api.OapiSnsGetuserinfoBycodeRequest("https://oapi.dingtalk.io/sns/getuserinfo_bycode")
req.tmp_auth_code = "abcdef"
try:
  resp = req.getResponse("yourAppId", "yourAppSecret")
  print(resp)
except Exception as 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 OapiSnsGetuserinfoBycodeRequest;
$req->setTmpAuthCode("abcdef");
$resp = $c->execute($req,"yourAppId","yourAppSecret", "https://oapi.dingtalk.io/sns/getuserinfo_bycode");
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/sns/getuserinfo_bycode");
OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
req.TmpAuthCode = "abcdef";
OapiSnsGetuserinfoBycodeResponse rsp = client.Execute(req, "yourAppId", "yourAppSecret");
Console.WriteLine(rsp.Body);

响应

响应体示例

{
  "errcode": 0,
  "errmsg": "ok",
  "user_info": {
    "nick": "杨XX",
    "unionid": "Wzh9KbyaCZxxx",
    "openid": "EtiiaAu3Yf9Ruxxx",
    "main_org_auth_high_level": true
  }
}

错误码

若调用该接口报错,可根据错误信息在全局错误码文档中查找解决方案。
错误码说明
853002timestamp参数不合法,该参数值与钉钉服务器当前时间相差超过1分钟
853001timestamp参数格式不正确,必须是当前时间的毫秒数
853003accessKey参数不合法,必须是钉钉开放平台存在的appId
853004signature参数不正确,与钉钉服务端计算出来的签名不一致,注意该参数传递时必须urlEncode