java钉钉API接入
二、获取token,2个小时的过期时间,token每天有调用次数限制,可以存储在redis,后续调用接口直接在redis拿。一、获取到app-key 和app-secret,及相应的api接口调用权限。3、获取相应的接口调用权限。2、进入公告开发应用。
·
一、获取到app-key 和app-secret,及相应的api接口调用权限
1、登陆钉钉开放平台:钉钉后台开发者地址
下面展示以拉取钉钉公告示例,其他的api接口调用,开发文档地址:钉钉开发文档
2、进入公告开发应用
3、获取相应的接口调用权限
二、获取token,2个小时的过期时间,token每天有调用次数限制,可以存储在redis,后续调用接口直接在redis拿
引入jar包
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
/**
* 获取token 2个小时过期
*
* @return 单条数据
*/
public Result<Boolean> getDingDIngToken() {
String s = HttpUtil.get("https://oapi.dingtalk.com/gettoken?appkey="+appKey+"&appsecret="+appSecret+"");
DingDingTokenVO dingDingTokenVO = JsonUtil.parseObject(s, DingDingTokenVO.class);
if(Objects.nonNull(dingDingTokenVO) && dingDingTokenVO.getErrcode().equals(0)){
redisUtil.setEx(StaticTokenStaticVariables.DINGDING_TOKEN,dingDingTokenVO.getAccess_token(),dingDingTokenVO.getExpires_in(),TimeUnit.SECONDS);
}else {
log.info("dingDingToken-{}",s);
throw new BizException("获取token失败");
}
return Result.success(Boolean.TRUE);
}
public String redisDingToken() {
Boolean exists = redisUtil.exists(StaticTokenStaticVariables.DINGDING_TOKEN);
if(!exists){
getDingDIngToken();
}
return redisUtil.get(StaticTokenStaticVariables.DINGDING_TOKEN);
}
Token实体
@Data
public class DingDingTokenVO {
private String access_token;
private Integer errcode;
private String errmsg;
private Integer expires_in;
}
获取公告列表
/**
* 获取公告列表
*
* @return
*/
public Result<String> getBlackboard(@RequestBody BlackboardPageParamVO blackboardPageParamVO) {
String url = "https://oapi.dingtalk.com/topapi/blackboard/listids?access_token=" + redisDingToken();
Map<String, Object> param = new HashMap<>();
blackboardPageParamVO.setOperation_userid(redisUtil.get("operation_userid"));
param.put("query_request", JsonUtil.toJSONString(blackboardPageParamVO));
String post = HttpUtil.post(url, param);
System.out.println(post);
Map map = JsonUtil.parseObject(post, Map.class);
String result = JsonUtil.toJSONString(map.get("result"));
List<String> blackboardCategoryDTOS = JsonUtil.parseJSONArray(result, new TypeReference<List<String>>() {
});
// if(!CollectionUtils.isEmpty(blackboardCategoryDTOS)){
// for (String blackboardCategoryDTO : blackboardCategoryDTOS) {
// getBlackboardInfo(blackboardCategoryDTO);
// }
// }
return Result.success(post);
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)