DingClient.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.gis.dingtalk;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.dtflys.forest.annotation.*;
  4. import com.gis.dingtalk.dto.DingMsgDto;
  5. /**
  6. * 钉钉客户端
  7. */
  8. @BaseRequest(sslProtocol = "TLS")
  9. public interface DingClient {
  10. /**
  11. * 获取access_token
  12. * 正常情况下access_token有效期为7200秒,有效期内重复获取返回相同结果,并自动续期。
  13. */
  14. @Get("https://oapi.dingtalk.com/gettoken?appkey={appkey}&appsecret={appSecret}")
  15. JSONObject getToken(@Var("appkey") String appkey, @Var("appSecret") String appSecret);
  16. /**
  17. * 根据手机号获取userid
  18. */
  19. @Get("https://oapi.dingtalk.com/user/get_by_mobile?access_token={accessToken}&mobile={mobile}")
  20. JSONObject getUserByMobile(@Var("accessToken") String accessToken, @Var("mobile") String mobile);
  21. /**
  22. * 发送钉钉消息通知
  23. */
  24. @Post("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token={accessToken}")
  25. JSONObject sendMsg(@Var("accessToken") String accessToken, @JSONBody DingMsgDto object);
  26. /**
  27. * 获取单个审批实例详情
  28. * @param accessToken
  29. * @param processInstanceId 审批实例ID etoy6f7RRBmUYgTNoFjq0w05391707123720 盛建民提交的报销申请 2024-02-05
  30. * @return
  31. */
  32. @Get("https://api.dingtalk.com/v1.0/workflow/processInstances?processInstanceId={processInstanceId}")
  33. JSONObject getWorkflowInfo(@Header("x-acs-dingtalk-access-token") String accessToken, @Var("processInstanceId")String processInstanceId);
  34. }