最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【无法解决】获取百度的永久的或长期比如1年的有效的access token

工作和技术 crifan 4084浏览 0评论

折腾:

【已解决】用和适在线的语言合成接口把文字转语音

期间,已经可以通过普通的方式去获得token了:

https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=SNxxxxKhxsPLcaz&client_secret=47d7c02xxxxxxb1e7ba

{

"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的出发点是什么呢? – 知乎

access_token有效期 | wechat

OAuth 2.0 里面 refresh token 的正确使用方法是什么? – V2EX

好像是:

直接把之前用于获取token的参数中的access_token换成refresh_token

-》发现之前并没有access_token参数

docs/oauth – 百度开放云平台

授权应用场景 docs/oauth/application – 百度开放云平台

记得:

在用别的系统时,是可以利用refresh_token,再去获取一次,可以得到一个有效期更长的access_token的

docs/oauth/showcase – 百度开放云平台

-》

OAuth 2.0 — OAuth

https://openapi.baidu.com/oauth/2.0/authorize

https://openapi.baidu.com/oauth/2.0/token

开放API接口调用方式

首页>帮助文档首页>百度OAuth>概述

Client Credentials

即采用应用公钥、密钥获取Access Token,适用于任何类型应用。

通过此授权方式获取Access Token仅可访问平台授权类的接口。

有效期一个月的Access Token+有效期十年的Refresh 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。

转载请注明:在路上 » 【无法解决】获取百度的永久的或长期比如1年的有效的access token

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
87 queries in 0.222 seconds, using 22.14MB memory