JAVA项目(maven)使用钉钉SDK(获取token、用户等)
将SDK放一个文件里,记住文件地址。D:\eclipse-workspace\项目名\模块名\lib
win+r cmd 敲下面的命令:
【进入相应盘】 D:
【进入文件地址】 cd D:\eclipse-workspace\项目名\模块名
【运行命令】 mvn install:install-file -DgroupId=com.dingtalk.api -DartifactId=top-api-sdk-dev -Dversion=ding-open-mc-SNAPSHOT -Dfile=lib/taobao-sdk-java-auto_1479188381469-20200319.jar -Dpackaging=jar -DgeneratePom=true
然后在pom文件中增加以下内容:
<!--钉钉工具包-->
<dependency>
<groupId>com.dingtalk.api</groupId>
<artifactId>top-api-sdk-dev</artifactId>
<version>ding-open-mc-SNAPSHOT</version>
</dependency>
理解:普通的maven项目都会在pom里配置好jar,项目自动从maven中配置的镜像地址(就是网上)自己把jar包下载到你设置的位置
但是有些jar包下载不下来,可以先本地保存,然后像上面那样用命令把jar包挂到maven设置的jar库里去
JAVA后台代码:
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiDepartmentListRequest;
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.request.OapiUserSimplelistRequest;
import com.dingtalk.api.response.OapiDepartmentListResponse;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.dingtalk.api.response.OapiUserSimplelistResponse;
import com.taobao.api.ApiException;
import com.dingtalk.api.response.OapiDepartmentListResponse.Department;
import com.dingtalk.api.request.*;
import com.dingtalk.api.response.*;
。。。
登录接口方法(前端传来code){
// 钉钉 /gettoken 获取token,只需填写appkey和appsecret
try {
DingTalkClient client1 = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest req1 = new OapiGettokenRequest();
req1.setAppkey("xxxxxxxx");
req1.setAppsecret("xxxxxxxx");
req1.setHttpMethod("GET");
OapiGettokenResponse rsp1 = client1.execute(req1);
System.out.println(rsp1.getBody());
accessToken = rsp1.getAccessToken();
} catch (Exception e) {
//} catch (ApiException e) {
e.printStackTrace();
}
// 钉钉 /user/getuserinfo 获取用户userid
try {
DingTalkClient client2 = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/getuserinfo");
OapiUserGetuserinfoRequest req2 = new OapiUserGetuserinfoRequest();
req2.setCode(code);//
req2.setHttpMethod("GET");
OapiUserGetuserinfoResponse rsp2 = client2.execute(req2, accessToken);//
System.out.println(rsp2.getBody());
userId = rsp2.getUserid();
System.out.println("userId:" + userId);
System.out.println("------------------------------------------------------");
} catch (ApiException e) {
e.printStackTrace();
}
// 钉钉 /user/get 获取用户详情
try {
DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get");
OapiUserGetRequest req3 = new OapiUserGetRequest();
req3.setUserid(userId);//
req3.setHttpMethod("GET");
OapiUserGetResponse rsp3 = client3.execute(req3, accessToken);//
System.out.println(rsp3.getBody());
} catch (ApiException e) {
e.printStackTrace();
}
// 钉钉 获取所有部门列表
try {
DingTalkClient client4 = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list");
OapiDepartmentListRequest req4 = new OapiDepartmentListRequest();
req4.setHttpMethod("GET");
req4.setId("1");
OapiDepartmentListResponse rsp4 = client4.execute(req4, accessToken);
System.out.println("-----------------获取所有部门列表-----------------");
System.out.println(rsp4.getBody());
List<Department> departmentList = rsp4.getDepartment();
System.out.println("-----------------------------------------------------");
// [{id: xxx, parentid: xxx, ......},{id: xxx, parentid: xxx, ......},{id: xxx, parentid: xxx, ......},{id: xxx, parentid: xxx, ......}]
System.out.println(departmentList.get(0).getId();
Long parentid = departmentList.get(0).getParentid();
} catch (ApiException e) {
e.printStackTrace();
}
}