main
黄海 2 years ago
parent f4a6573149
commit 37e0b09aeb

@ -1,12 +1,20 @@
package UnitTest;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.redis.Redis;
import com.jfinal.plugin.redis.RedisPlugin;
import com.taobao.api.ApiException;
import java.util.Date;
public class TestDingTalk {
@ -15,14 +23,26 @@ public class TestDingTalk {
2023-06-06
*/
public static String getToken(String appKey, String appSecret) throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.setAppkey(appKey);
request.setAppsecret(appSecret);
request.setHttpMethod("GET");
OapiGettokenResponse response = client.execute(request);
return response.getBody();
public static JSONObject getAccessToken(String appKey, String appSecret) throws ApiException {
final String KEY = "DingTalkAccessToken";
if (!Redis.use().exists(KEY)) {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.setAppkey(appKey);
request.setAppsecret(appSecret);
request.setHttpMethod("GET");
OapiGettokenResponse response = client.execute(request);
JSONObject jo = JSONObject.parseObject(response.getBody());
jo.put("start_time", DateTime.now());
Redis.use().setex(KEY, 5400, jo.toString());//5400:一个半小时过期
System.out.println("本轮是从从阿里云获取到Token:" + jo.getString("access_token"));
return jo;
} else {
String str = Redis.use().get(KEY);
JSONObject jo = JSONObject.parseObject(str);
System.out.println("本轮是从缓存中获取到Token:" + jo.getString("access_token"));
return jo;
}
}
public static void main(String[] args_) throws Exception {
@ -32,6 +52,13 @@ public class TestDingTalk {
final String appKey = PropKit.get("appKey");
String appSecret = PropKit.get("appSecret");
System.out.println(getToken(appKey, appSecret));
// 用于缓存模块的redis服务
RedisPlugin redis = new RedisPlugin("myRedis", PropKit.get("redis_ip"), PropKit.getInt("redis_port"), 10 * 1000);
redis.start();
for (int i = 1; i <= 100; i++) {
JSONObject jo = getAccessToken(appKey, appSecret);
System.out.println(jo);
}
}
}

@ -1,7 +1,14 @@
# 公司ID
corpId=ding0b95901147fc6be0f2c783f7214b6d69
# 这是啥?
# 每个应用都拥有唯一的AgentId
agentId=2619270936
# AK SK
appKey=dingr94qyhpr8bflyxqz
appSecret=hnxZ93QqkGJpRyBziaR2vlbOPZo1U9eeqj73DfFuFnIxIUHNPbMR2DkIol9oGteh
appSecret=hnxZ93QqkGJpRyBziaR2vlbOPZo1U9eeqj73DfFuFnIxIUHNPbMR2DkIol9oGteh
# redis ip
redis_ip=10.10.14.169
# redis port
redis_port=18890

@ -1,7 +1,14 @@
# 公司ID
corpId=ding0b95901147fc6be0f2c783f7214b6d69
# 这是啥?
# 每个应用都拥有唯一的AgentId
agentId=2619270936
# AK SK
appKey=dingr94qyhpr8bflyxqz
appSecret=hnxZ93QqkGJpRyBziaR2vlbOPZo1U9eeqj73DfFuFnIxIUHNPbMR2DkIol9oGteh
appSecret=hnxZ93QqkGJpRyBziaR2vlbOPZo1U9eeqj73DfFuFnIxIUHNPbMR2DkIol9oGteh
# redis ip
redis_ip=10.10.14.169
# redis port
redis_port=18890

Loading…
Cancel
Save