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 语言再输入代码即可