Hi @JFinal 好久不见。
JFinal-weixin中,我看源码的时候在ApiConfig.java中
public String getAppSecret() { if (appSecret == null) throw new IllegalStateException("appSecret 未被赋值"); return appSecret; }
追踪代码发现,在获取access_token过期后有个刷新
AccessTokenApi.java
AccessToken (ApiConfig ac) { AccessToken result = (ac)(result != ) { result} (ac)}
刷新时的代码如下:
AccessToken (ApiConfig ac) { String appId = ac.getAppId()String appSecret = ac.getAppSecret()Map<StringString> queryParas = ParaMap.(appId).put(appSecret).getData()AccessToken result = RetryUtils.(Callable<AccessToken>() { AccessToken () Exception { String json = HttpUtils.()AccessToken(json)} })(!= result) { IAccessTokenCache accessTokenCache = ApiConfigKit.()accessTokenCache.set(ac.getAppId()result.getCacheJson())} result}
但是,我们采用了第三方授权,获取不到secret的。所以是不是这一套不适合。如果需要修改的话,可以重写此类,将获取access_token的方式变更为第三方授权的方式:
String url = + componentAccessTokenJSONObject jsonObj = JSONObject()jsonObj.put()jsonObj.put(authorizerAppid)jsonObj.put(authorizerRefreshToken)
String jsonString = HttpUtils.(urljsonObj)JSON.(jsonString)
http://www.jfinal.com/my/feedback
改的时候注意看一下有一个 "代码语言" 的下拉框,选择 Java 语言再输入代码即可