折腾:
期间,已经可以通过普通的方式去获得token了:
{
"access_token": "24.569xxxx483",
"session_key": "9mzdDoR4p/oxxxf7/96xxxA==",
"scope": "public audio_voice_assistant_get audio_tts_post wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base",
"refresh_token": "25.xxxx-11xx",
"session_secret": "1xxxxa",
"expires_in": 2592000
}
而此处获得的token的有效期是:
2592000=30天=1个月
想要获取一个,相对更加长期的access token,以便后续封装百度语音合成相关接口时,token不用每次都去获取,而最多过很长时间(比如1年)再去更换一次即可,
如果是永久的,就不用更换,那最好。
去参考:
qcomdd/hi-voice: 百度语音合成,api接口,可用到微信语音回复
“扩展阅读
百度OAuth(开放授权)在调用百度开放API之前,首先需要获取Access Token。 百度OAuth2.0支持五种获取Access Token的流程和一种刷新获取AccessToken方式 保证授权有效期为永久。 实现方式:返回给第三方一个月有效期的Access Token + 十年有效期的Refresh Token。 Refresh Token获取Access Token”
和
文档中心—百度AI
鉴权认证机制
http://ai.baidu.com/docs#/Auth/top%E3%80%82
https://openapi.baidu.com/oauth/2.0/token
官网文档中,并没有说如何利用refresh_token去获取更长时间的token的
百度 refresh_token 有效期
百度 refresh_token 延长 有效期
JWT(JSON Web Token)自动延长到期时间 – 纯净的天空
新浪OAuth2.0机制不支持refresh token的出发点是什么呢? – 知乎
OAuth 2.0 里面 refresh token 的正确使用方法是什么? – V2EX
好像是:
直接把之前用于获取token的参数中的access_token换成refresh_token
-》发现之前并没有access_token参数
授权应用场景 docs/oauth/application – 百度开放云平台
记得:
在用别的系统时,是可以利用refresh_token,再去获取一次,可以得到一个有效期更长的access_token的
-》
https://openapi.baidu.com/oauth/2.0/authorize
https://openapi.baidu.com/oauth/2.0/token
Client Credentials
即采用应用公钥、密钥获取Access Token,适用于任何类型应用。
通过此授权方式获取Access Token仅可访问平台授权类的接口。
有效期一个月的Access Token+有效期十年的Refresh Token。
-》
终于找到我们要的了。
去用refresh_token刷新一下
看看得到的access_token的有效期是否会更长些
https://openapi.baidu.com/oauth/2.0/token?grant_type=refresh_token&refresh_token=25.5acf5c4d9cxxxx8.315360000.1840783602.282335-11192483&client_id=SNjxxxxaz&client_secret=47dxxxba
注意此处不传scope参数了。
结果返回的token的有效期还是30天=2592000秒:
【总结】
此处百度的oauth的api中,用refresh_token去刷新(一般来说是过期)的access_token,返回的access_token的有效期,不是以为的是永久的,还是2592000秒=30天的。
目前无法实现,从百度的oauth中获取永久的可以不过期的access_token。