1.下载sdk,添加至项目依赖。
下载地址:https://openplatform-portal.dg-work.cn/portal/#/helpdoc?apiType=TOOL_SOURCES&docKey=3355368
2.yml文件添加参数配置。
#浙政钉
zzding:
appKey : ********
appSecret : ***********
domainName : openplatform-pro.ding.zj.gov.cn
protocal : https
tenantId : ******
3.代码实现
@Slf4j
@Service
public class ZheZhengDingServiceImpl implements ZheZhengDingService {
@Value("${zzding.domainName}")
private String domainName;
@Value("${zzding.appKey}")
private String appKey;
@Value("${zzding.appSecret}")
private String appSecret;
@Value("${zzding.protocal}")
private String protocal;
/**
* 获取浙政钉token
*
* @return
*/
@Override
public JSONObject getZZDToken() {
ExecutableClient executableClient = ExecutableClient.getInstance();
executableClient.setAccessKey(appKey);
executableClient.setSecretKey(appSecret);
executableClient.setDomainName(domainName);
executableClient.setProtocal(protocal);
executableClient.init();
//executableClient要单例,并且使用前要初始化,只需要初始化一次
String api = "/gettoken.json";
GetClient getClient = executableClient.newGetClient(api);
//调用API
String apiResult = getClient.get();
log.info("获取浙政钉获取token信息:{}", apiResult);
return JSONObject.parseObject(apiResult);
}
/**
* 获取浙政钉用户信息
*
* @param request
* @return
*/
@Override
public JSONObject getUserInfoByCode(OapiRpcOauth2GetuserinfoBycodeJsonRequest request) {
ExecutableClient executableClient = ExecutableClient.getInstance();
executableClient.setDomainName(domainName);
executableClient.setProtocal(protocal);
executableClient.setAccessKey(appKey);
executableClient.setSecretKey(appSecret);
executableClient.init();
String api = "/rpc/oauth2/getuserinfo_bycode.json";
PostClient postClient = executableClient.newPostClient(api);
postClient.addParameter("access_token", request.getAccess_token());
postClient.addParameter("code", request.getCode());
String apiResult = postClient.post();
log.info("获取浙政钉获取用户信息:{}", apiResult);
return JSONObject.parseObject(apiResult);
}
}