# 获取用户授权的持久授权码旧版SDK ![AI 智能摘要](https://gw.alicdn.com/imgextra/i4/O1CN01Zx4PED22rkUkmRe1L_!!6000000007174-2-tps-226-40.png)![>](https://gw.alicdn.com/imgextra/i2/O1CN01UwOv1C27lrTuGFj2D_!!6000000007838-2-tps-17-30.png) 更新于 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 ### **错误码** 若调用该接口报错,可根据错误信息在[全局错误码](https://open.dingtalk.com/document/development/server-api-error-codes-1#)文档中查找解决方案。