钉钉任务创建并发送

添加maven依赖

<!--钉钉 SDK-->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dingtalk</artifactId>
    <version>1.4.31</version>
</dependency>

创建并发送任务

参考钉钉开放文档
https://open.dingtalk.com/document/orgapp-server/create-a-project-task

access_token获取

https://oapi.dingtalk.com/gettoken?appkey={appkey}&appsecret={appsecret}
appkey 和 appsecret 来源于每个项目创建时的标识,如下
在这里插入图片描述

但是他的access_token是需要手动输入的,而access_token的有效期为两小时,所以当token有效期过了之后就需要再次获取并手动触发。
在这里插入图片描述

这样就很麻烦,所以为了减少手动操作,我们需要解析获取到的json数据。

解析第三方接口获取到的json

通过钉钉获取access_token接口获取到的json数据如下
在这里插入图片描述

接下来只需要解析返回的数据,并获取access_token,将获取到的token自动装入。

//调用接口,返回字符串
String url = "https://oapi.dingtalk.com/gettoken?appkey={appkey}&appsecret={appsecret};
String get = HttpUtil.get(url);
//将获取到的字符串转为json
JSONObject jsonObject = JSONObject.parseObject(get);
//将json封装进实体类
ResultResponse response = jsonObject.toJavaObject(ResultResponse.class);
//获取access_token
String token = createTaskHeaders.xAcsDingtalkAccessToken = response.getAccessToken();

实体类ResultResponse

@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class ResultResponse {

    private String errcode;
    private String accessToken;
    private String errmsg;
    private String expiresIn;
}

redis实现token缓存

为了实现对token的管理,可以使用redis进行缓存。
首先需要引入redis并在yml文件中进行配置,此处省略。
定义redis用到的constants类

public class RedisConstants {
    public static final String REDIS_GROUP = "token:";
    public static final String DING_REFRESH = "refresh:";
    //设置刷新时间为1小时
    public static final Long REFRESH_TIME = 1L;
}

在实现类中将token放入redis

String key = stringRedisTemplate.opsForValue().get(RedisConstants.REDIS_GROUP + RedisConstants.DING_REFRESH + token);
//若token存在则直接返回
if (org.springframework.util.StringUtils.hasText(key)) {
    return key;
}
stringRedisTemplate.opsForValue().set(RedisConstants.REDIS_GROUP + RedisConstants.DING_REFRESH, token, RedisConstants.REFRESH_TIME, TimeUnit.HOURS);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值