先来看一下工程结构:
在包handler
中的服务就是处理各个推送事件的类。
企业授权
我们开发的第三方微应用,只有企业授权并激活才可以使用
在应用的详情页面,点击「体验组织」tab可以添加授权组织。所选好体验组织,点击授权按钮,如上图所示。
后台事件处理如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| package club.itwork.dingtalk.handler;
import club.itwork.dingtalk.constant.Constants; import club.itwork.dingtalk.dto.EventMsg; import club.itwork.dingtalk.service.CorpInfoService; import club.itwork.dingtalk.service.DingTalkCorpService; import club.itwork.dingtalk.thread.ThreadPoolManager; import com.dingtalk.api.response.OapiServiceGetAuthInfoResponse; import com.dingtalk.api.response.OapiServiceGetPermanentCodeResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Slf4j @Component(value = Constants.Event.TMP_AUTH_CODE) public class TmpAuthCodeEventHandler implements EventHandler {
@Resource private DingTalkCorpService dingTalkCorpService; @Resource private CorpInfoService corpInfoService;
@Override public void handle(EventMsg eventMsg) { log.info("处理授权事件参数:{}", eventMsg);
ThreadPoolManager.getInstance().addTask(TmpAuthCodeEventHandler.class, () -> { String authCode = eventMsg.getAuthCode(); OapiServiceGetPermanentCodeResponse response = dingTalkCorpService.getPermanentCode(authCode); if (response != null) { String permanentCode = response.getPermanentCode(); Boolean result = dingTalkCorpService.activateSuite(eventMsg.getAuthCorpId(), permanentCode); log.info("激活应用结果:{}", result); OapiServiceGetAuthInfoResponse authInfo = dingTalkCorpService.getCorpAuthInfo(eventMsg.getAuthCorpId()); corpInfoService.save(authInfo, permanentCode); } }); } }
|
此步如果成功,那么企业授权并且已经激活,可以在钉钉的客户端(PC/手机)查看结果:
这样企业就成功授权了,接下来就要根据自己的相关业务去做相应的开发了。
开通接口权限
开发相关通讯录业务,还要开通相应的接口权限,如上图。
获取源码
关注微信公众号「特想学英语」,回复:「钉钉」