快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

DingTalk:: 通讯录单向同步实现示例

请联系QQ:1793040 索取软件

最近项目中需要实现对接钉钉,并实现单向通讯录同步(-> )本文通过一个简单的案例快速实现相关的DEMO (本文主要实现与钉钉对接)。

钉钉API:https://open-doc.dingtalk.com…

在使用回调接口前,需要做以下准备工作:
1) 提供一个接收消息的RESTful接口。
2) 调用钉钉API,主动注册回调通知。
3) 因为涉及到消息的加密解密,默认的JDK存在一些限制,先要替换相关jar:

在官方网站下载JCE无限制权限策略文件
JDK6的下载地址:http://www.oracle.com/technet…
JDK7的下载地址:http://www.oracle.com/technet…
JDK8的下载地址:http://www.oracle.com/technet…
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。
如果安装的是JRE,将两个jar文件放到%JRE_HOME% libsecurity目录下覆盖原来的文件,
如果安装的是JDK,将两个jar文件放到%JDK_HOME%jrelibsecurity目录下覆盖原来文件。

4) 内网穿透映射本地RESTful接口到公网,推荐使用: http://ngrok.ciqiuwl.cn/

1.提供回调接口


接口写好之后,还需要将接口暴露在公网,如此钉钉服务器才能进行调用,下为内网穿透示意图:
title

钉钉为我们开发者提供了一个Ngrok服务,在https://github.com/open-dingt…,按照操作文章指引配置即可。

我在这边使用的是其他的Ngrok服务,官网地址是http://ngrok.ciqiuwl.cn/,配置后启动如下图所示:
title
将本地的映射到,最终提供给钉钉的回调接口地址即为:

以上准备工作完后成,就可以将接口启动起来,继续后续的操作。

2.主动注册回调接口

写一个测试方法,将注册到钉钉,后续钉钉相关的消息都会推送到此处。


执行代码,如果一切不出意外的话,就注册成功了(注册的过程中需保证callbackUrl可以正常访问,因为首次会向该接口发送一条check_url事件,验证其合法性)


另外再来观察一下回调接口是否收到checkUrL消息:


3.测试注册的通讯录事件

在上一步中,注册了 (增加用户)、 (修改用户)、 (用户离职|删除)三个事件

打开钉钉后台管理,在通讯录中新增一个用户:
title
保存成功后,在回调接口中则马上收到了该事件的通知消息:


4.后续同步逻辑

在上面的例子中新增用户后,收到的报文解密后的信息为只包含事件类型和用户ID,所以后面还需要主动调用钉钉获取用户详情的接口,再做具体的同步逻辑,这里就不再往下写了,贴一下相关的API接口吧:
https://open-doc.dingtalk.com…
title

下面罗列了以上示例中用到的工具类封装,不再具体讲解,直接贴代码

DingTalkConst

常量池


DingTalkCallbackTag

可供注册的回调事件类型枚举


DingTalkEncryptor

钉钉消息加密解密工作类


PKCS7Padding


DingTalkApi

钉钉开放API简易封装 (仅供测试)


		

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040