|
|
@@ -0,0 +1,86 @@
|
|
|
+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;
|
|
|
+
|
|
|
+ }
|
|
|
+}
|