Openid 介绍

优质
小牛编辑
130浏览
2023-12-01

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

参数说明:

参数名类型是否必须描述
uidint老版用户标识,获取用户信息接口返回的userid
client_idstring应用的API Key
client_secretstring应用的Secret Key
get_unionidint需要获取unionid时,传递get_unionid = 1

返回参数:

参数名参数类型是否必需示例值描述
openidstringoPXyY4O0ZTmUqSX4MRxYDDCccT6Kc9E百度用户的唯一标识,对当前开发者帐号、当前应用唯一
unionidstringuA91qQ6gAISTuy0mMqoeh7lZ0w6x478百度用户统一标识,对当前开发者帐号唯一

错误情况下:

字段名类型描述
errorstring错误码,关于错误码的详细信息请参考附录Ⅰ-3
error_descriptionstring错误描述信息,用来帮助理解和解决发生的错误

返回值示例:

{
    "openid": "oPXyY4O0ZTmUqSX4MRxYDDCccT6Kc9E",
    "unionid": "uA91qQ6gAISTuy0mMqoeh7lZ0w6x478"
}

出错时返回:

{
    "error": "request_exceeds_limit",
    "error_description": "Request Exceeds Limit"
}

4. 注意

  • openid、unionid长度:至少是31个字节长度,建议开发者预留64字节存储空间
  • openid、unionid字符:由大小写字母、数字、-(连字符)、_(下划线)组成