# 1. Openid介绍
openid是百度用户的唯一标识,对当前开发者帐号唯一。用户授权后,开发者可以在获取用户信息接口获取到openid。openid替代老版返回的userid,作为当前应用下的用户唯一标识,用于区分用户的唯一性。老版userid在openid升级的过渡期后将不在返回,因此开发者需要尽快进行改造升级,替换老版userid,使用openid或者unionid作为用户标识,以免发生影响授权使用的问题。
# 2. Unionid介绍
unionid是百度用户的统一标识,对当前开发者帐号唯一。用户授权后,开发者可以在获取用户信息接口根据可选项获取到unionid。如果开发者拥有多个应用,可以通过获取用户的unionid来区分用户的唯一性,只要是同一开发者帐号下创建的应用,用户的unionid是唯一的。换句话说,同一用户(百度帐号),对同一开发者下的不同应用,unionid是相同的。
# 3. 存量老版Userid转换Openid
开发者的应用如果有存量的老版userid,可以通过调用转换接口换取对应的新版openid、unionid(如果需要),存量转换接口只在openid升级改造过渡期开放。转换接口对单应用的调用限制为100qps。
接口调用请求说明:
GET https://openapi.baidu.com/oauth/2.0/exchangeopenid?uid=uid&client_id=client_id&client_secret=client_secret
参数说明:
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
uid | int | 是 | 老版用户标识,获取用户信息接口返回的userid |
client_id | string | 是 | 应用的API Key |
client_secret | string | 是 | 应用的Secret Key |
get_unionid | int | 否 | 需要获取unionid时,传递get_unionid = 1 |
返回参数:
参数名 | 参数类型 | 是否必需 | 示例值 | 描述 |
---|---|---|---|---|
openid | string | 是 | oPXyY4O0ZTmUqSX4MRxYDDCccT6Kc9E | 百度用户的唯一标识,对当前开发者帐号、当前应用唯一 |
unionid | string | 否 | uA91qQ6gAISTuy0mMqoeh7lZ0w6x478 | 百度用户统一标识,对当前开发者帐号唯一 |
错误情况下:
字段名 | 类型 | 描述 |
---|---|---|
error | string | 错误码,关于错误码的详细信息请参考附录Ⅰ-3 |
error_description | string | 错误描述信息,用来帮助理解和解决发生的错误 |
返回值示例:
{
"openid": "oPXyY4O0ZTmUqSX4MRxYDDCccT6Kc9E",
"unionid": "uA91qQ6gAISTuy0mMqoeh7lZ0w6x478"
}
出错时返回:
{
"error": "request_exceeds_limit",
"error_description": "Request Exceeds Limit"
}
# 4. 注意
- openid、unionid长度:至少是31个字节长度,建议开发者预留64字节存储空间
- openid、unionid字符:由大小写字母、数字、-(连字符)、_(下划线)组成
← 开发者个人信息保护合规指引 iOS接入指南 →