|
@@ -0,0 +1,83 @@
|
|
|
+package net.chenlin.dp.modules.api.controller;
|
|
|
+
|
|
|
+import com.dingtalk.api.DefaultDingTalkClient;
|
|
|
+import com.dingtalk.api.DingTalkClient;
|
|
|
+import com.dingtalk.api.request.*;
|
|
|
+import com.dingtalk.api.response.*;
|
|
|
+import com.taobao.api.ApiException;
|
|
|
+import net.chenlin.dp.common.openapi4j.util.PropUtil;
|
|
|
+import net.chenlin.dp.common.utils.DateUtils;
|
|
|
+import net.chenlin.dp.common.utils.JSONUtils;
|
|
|
+import org.springframework.boot.configurationprocessor.json.JSONException;
|
|
|
+import org.springframework.boot.configurationprocessor.json.JSONObject;
|
|
|
+
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Properties;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 此类用于钉钉公开接口方法调用
|
|
|
+ */
|
|
|
+public class DingdingOpenInterface {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 企业内部应用的access_token,每20分钟改变一次
|
|
|
+ */
|
|
|
+ public static String gettoken = "";
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取钉钉企业内部应用的access_token
|
|
|
+ */
|
|
|
+ public static void getToken(){
|
|
|
+
|
|
|
+ try {
|
|
|
+ Properties prop = PropUtil.getProperties("/config.properties");
|
|
|
+ String appkey = prop.getProperty("ding_appkey");
|
|
|
+ String appsecret = prop.getProperty("ding_appsecret");
|
|
|
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
|
|
|
+ OapiGettokenRequest req = new OapiGettokenRequest();
|
|
|
+ req.setHttpMethod("GET");
|
|
|
+ req.setAppkey(appkey);
|
|
|
+ req.setAppsecret(appsecret);
|
|
|
+ OapiGettokenResponse rsp = client.execute(req);
|
|
|
+
|
|
|
+ Map<String,String> map;
|
|
|
+ map = toMap(rsp.getBody());
|
|
|
+ if(map.get("errcode").equals("0")){
|
|
|
+ gettoken = map.get("access_token");
|
|
|
+ }else{
|
|
|
+ gettoken = "error";
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println("access_token获取:"+gettoken);
|
|
|
+
|
|
|
+ } catch (ApiException | JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static Map toMap(String jsonString) throws JSONException {
|
|
|
+ JSONObject jsonObject = new JSONObject(jsonString);
|
|
|
+ Map result = new HashMap();
|
|
|
+ Iterator iterator = jsonObject.keys();
|
|
|
+ String key = null;
|
|
|
+ String value = null;
|
|
|
+
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+
|
|
|
+ key = (String) iterator.next();
|
|
|
+ value = jsonObject.getString(key);
|
|
|
+ result.put(key, value);
|
|
|
+
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|