更新于 2026-06-30调用本接口可使用临时授权码(tmp_auth_code)换取用户的持久化授权凭证(persistent_code),用于后续长期访问用户数据。该接口通常在用户完成OAuth授权后调用,是第三方个人应用实现用户身份绑定的关键步骤之一
本接口仅适用于第三方个人应用,用于将前端获取的临时授权码转换为可长期使用的持久授权码。
持久授权码(persistent_code)无过期时间,可用于后续调用开放平台 接口,进而代表用户执行操作。
典型业务场景包括:
用户首次登录时建立长期授权关系;
实现跨设备或服务间的身份同步;
需要后台异步访问用户数据的服务架构。
| 基本信息 | 基本信息 |
|---|---|
| HTTP URL | https://oapi.dingtalk.com/sns/get_persistent_code |
| HTTP Method | POST |
| 支持的应用类型 | 第三方个人应用 |
| 权限要求 | 无 |
| 名称 | 参数类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| access_token | String | 是 | 5c5e303c-xxxx83ff1f7bef |
应用的授权凭证,调用获取第三方个人应用的access_token接口获取。 |
| 参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| tmp_auth_code | String | 是 | 23152698ea18304xxxx | 用户授权给钉钉开放应用的临时授权码。 |
curl
1
2
3
4
curl -X POST "https://oapi.dingtalk.com/sns/get_persistent_code" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=5c5e303c-xxxx83ff1f7bef' \
-d 'tmp_auth_code=23152698ea18304da4d0ce1xxxxx'
Enter to Rename, ⇧Enter to Preview
Java
1
DingTalkClient client \= new DefaultDingTalkClient("https://oapi.dingtalk.com/sns/get_persistent_code");
Enter to Rename, ⇧Enter to Preview
Python
1
# -*- coding: utf-8 -*-
Enter to Rename, ⇧Enter to Preview
PHP
1
include "TopSdk.php";
Enter to Rename, ⇧Enter to Preview
Node.js
1
let { Config, OapiSnsGetPersistentCodeParams, OapiSnsGetPersistentCodeRequest } = require('./client.js');
Enter to Rename, ⇧Enter to Preview
C#
1
IDingTalkClient client \= new DefaultDingTalkClient("https://oapi.dingtalk.com/sns/get_persistent_code");
Enter to Rename, ⇧Enter to Preview
| 参数 | 类型 | 示例值 | 说明 |
|---|---|---|---|
| persistent_code | String | liSii8KCxxxxx | 用户给开放应用授权的持久授权码,此码目前无过期时间。 |
| openid | String | dsa-d-asdaxxxxnINIn-ssdasd | 用户在当前开放应用内的唯一标识 |
| unionid | String | 7Huu46kk | 用户在当前钉钉开放平台账号范围内的唯一标识。 |
| errmsg | String | ok | 返回码描述。 |
| errcode | Number | 0 | 返回码。 |
1
2
3
4
5
6
7
{
"errcode":0,
"errmsg":"ok",
"persistent_code":"liSii8KCxxxxx",
"openid":"dsa-d-asdaxxxxnINIn-ssdasd",
"unionid":"7Huu46kk"
}
Enter to Rename, ⇧Enter to Preview
若调用该接口报错,可根据错误信息在全局错误码文档中查找解决方案。