AccessTokenServiceImpl.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.muzhi.huanshi.service.impl;
  2. import com.auth0.jwt.JWT;
  3. import com.auth0.jwt.algorithms.Algorithm;
  4. import com.dingtalk.api.DefaultDingTalkClient;
  5. import com.dingtalk.api.request.OapiGettokenRequest;
  6. import com.dingtalk.api.response.OapiGettokenResponse;
  7. import com.muzhi.huanshi.service.AccessTokenService;
  8. import com.taobao.api.ApiException;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.util.StringUtils;
  11. import java.util.Date;
  12. /**
  13. * @Author ZhangKan
  14. * @Data 15:39
  15. */
  16. @Service
  17. public class AccessTokenServiceImpl implements AccessTokenService {
  18. //环世
  19. //APPKEY
  20. private static String APPKEY = "dingobpyhlo3vioasyo9";
  21. //APPSECRET
  22. private static String APPSECRET = "RNLnat9hiz8zQGSyOhLf1GEAx9qS66_VoFZFYJTwT_uy2aB_5sEoByTdd7oWc3Y0";
  23. //AgenthId:2769663130
  24. public static String accessToken = null;
  25. //获取access_token的方法(环世)
  26. @Override
  27. public String getAccessToken() {
  28. DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
  29. OapiGettokenRequest request = new OapiGettokenRequest();
  30. request.setAppkey(APPKEY);
  31. request.setAppsecret(APPSECRET);
  32. request.setHttpMethod("GET");
  33. try {
  34. OapiGettokenResponse response = client.execute(request);
  35. accessToken = response.getAccessToken();
  36. System.out.println("环世AccessToken:" + accessToken);
  37. } catch (ApiException e) {
  38. e.printStackTrace();
  39. }
  40. return accessToken;
  41. }
  42. public static final Long EXPIRES_IN = 1 * 3600 * 1000L;
  43. public static final String TOKEN_APPID = "_appId";
  44. public static String appId = "6555d03b73aa2fd874f4cc12";
  45. public static String appSecret = "HDMqRuUY08eY1FtEzxs0hNB6A2Tq58aL";
  46. //获取access_token的方法(环世TB应用)
  47. @Override
  48. public String getAppToken() {
  49. if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(appSecret)) {
  50. return null;
  51. }
  52. Algorithm algorithm = Algorithm.HMAC256(appSecret);
  53. long timestamp = System.currentTimeMillis();
  54. Date issuedAt = new Date(timestamp);
  55. Date expiresAt = new Date(timestamp + EXPIRES_IN);
  56. // return JWT.create()
  57. // .withClaim(TOKEN_APPID, appId)
  58. // .withIssuedAt(issuedAt)
  59. // .withExpiresAt(expiresAt)
  60. // .sign(algorithm);
  61. String sign = JWT.create()
  62. .withClaim(TOKEN_APPID, appId)
  63. .withIssuedAt(issuedAt)
  64. .withExpiresAt(expiresAt)
  65. .sign(algorithm);
  66. System.out.println("环世TB应用的AccessToken:" + sign);
  67. return sign;
  68. }
  69. }