package com.muzhi.huanshi.service.impl; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.request.OapiGettokenRequest; import com.dingtalk.api.response.OapiGettokenResponse; import com.muzhi.huanshi.service.AccessTokenService; import com.taobao.api.ApiException; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.Date; /** * @Author ZhangKan * @Data 15:39 */ @Service public class AccessTokenServiceImpl implements AccessTokenService { //环世 //APPKEY private static String APPKEY = "dingobpyhlo3vioasyo9"; //APPSECRET private static String APPSECRET = "RNLnat9hiz8zQGSyOhLf1GEAx9qS66_VoFZFYJTwT_uy2aB_5sEoByTdd7oWc3Y0"; //AgenthId:2769663130 public static String accessToken = null; //获取access_token的方法(环世) @Override public String getAccessToken() { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); OapiGettokenRequest request = new OapiGettokenRequest(); request.setAppkey(APPKEY); request.setAppsecret(APPSECRET); request.setHttpMethod("GET"); try { OapiGettokenResponse response = client.execute(request); accessToken = response.getAccessToken(); System.out.println("环世AccessToken:" + accessToken); } catch (ApiException e) { e.printStackTrace(); } return accessToken; } public static final Long EXPIRES_IN = 1 * 3600 * 1000L; public static final String TOKEN_APPID = "_appId"; public static String appId = "6555d03b73aa2fd874f4cc12"; public static String appSecret = "HDMqRuUY08eY1FtEzxs0hNB6A2Tq58aL"; //获取access_token的方法(环世TB应用) @Override public String getAppToken() { if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(appSecret)) { return null; } Algorithm algorithm = Algorithm.HMAC256(appSecret); long timestamp = System.currentTimeMillis(); Date issuedAt = new Date(timestamp); Date expiresAt = new Date(timestamp + EXPIRES_IN); // return JWT.create() // .withClaim(TOKEN_APPID, appId) // .withIssuedAt(issuedAt) // .withExpiresAt(expiresAt) // .sign(algorithm); String sign = JWT.create() .withClaim(TOKEN_APPID, appId) .withIssuedAt(issuedAt) .withExpiresAt(expiresAt) .sign(algorithm); System.out.println("环世TB应用的AccessToken:" + sign); return sign; } }