一、创建应用
在钉钉管理后台-应用开发-企业内部开发-创建应用(我们这边创建的是H5微应用)
创建好了之后,会拿到应用凭证:AgentId,AppKey,AppSecret
这三个值在开发中会用到
二、授权免登流程
1、前端–获取微应用免登授权码
具体参考API:获取授权码API
2、后端–授权免登
(1)获取access_token
用AppKey和AppSecret换取access_token
public static String getAccessToken(String appKey, String appSecret) {
DefaultDingTalkClient client = new
DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.setAppkey(appKey);
request.setAppsecret(appSecret);
request.setHttpMethod("GET");
OapiGettokenResponse response = null;
try {
response = client.execute(request);
} catch (ApiException e) {
log.error("dingUtil getAppToken error", e);
throw new BizException("获取token失败");
}
if (!response.isSuccess()) {
log.error("dingUtil getAccessTokenAfresh failed, errorCode={}, errorMsg={}", response.getErrcode(), response.getErrmsg());
return null;
}
return response.getAccessToken();
}
说明:正常情况下access_token有效期为7200秒,有效期内重复获取返回相同结果,并自动续期。所以不需要每次有用户授权登录,都要去获取一次。
@Component
public class AccessTokenCache {
private static Logger logger = Logger