“钉应用开发,有效的解决了企业多端APP开发的成本问题,对于小企业来讲多端APP开发的人力成本十分高昂,对于大企业而言重新建立庞杂的系统也让人望而却步。但接触钉钉后,作为一名企业IT工作者,钉钉让多系统集成与移动办公变得快捷而简单,企业不需要付出高昂的成本即可完成数字化转型。”
——「开发者」说
01应用开发经验分享
钉钉不仅是一个沟通协同工具,对于企业来说它能够帮助企业实现管理上的便利。对于开发者来说,自建应用节省了开发者的大量时间,无需进行多端开发。通过简单的自建H5页面可以很简单的把系统的某个功能,甚至是整个系统搬上钉钉。本篇文章将分享企业自建系统在钉钉实现免登录与钉钉集成能力考勤打卡与机器人消息通知开发。
(ps:由于使用到的是自建钉钉 php SDK,具体配置或者实现算法,以附件链接的形式在文尾)
第一阶段:纺织行业自有ERP系统上钉钉
-
解决的场景:通过账号打通与免登录,实现企业自有系统在钉钉工作台实现免登录
1、开发者后台中新增一个企业内部应用,将应用快捷入口放在钉钉工作台
2将建好的应用以快捷入口的方式放置在工作台
3 从钉钉端实现免登录进入应用
(1)使用钉钉免登陆
跳转到钉钉授权的接口,换取用户code:$app->redirect();
根据code获取用户信息:$user=$app->user();
Auth::login($user, false);
(2)使用钉钉扫码免登陆
只要把上述第一步跳转代码加一节就完成了:$app->withQrConnect()->redirect();
其他操作一致不变
到这里,我们已经可以完成大部分钉钉应用的对接了在实操中完全可以将公司的ERP分功能链接,每个链接新增一个内部应用,实现ERP系统全面集成上钉钉,钉钉工作台成为企业专属“APP"聚集地。
第二阶段:与钉钉能力集成开发,加速纺织行业业务数字化
-
解决的场景:通过钉钉订阅服务接口,集成人事考勤类场景
在未打通钉钉的情况下,人事获取员工考勤的方式是钉钉的考勤导出功能,再把数据导入企业自有ERP系统中进行核算。通过钉钉服务订阅的方式,将钉钉考勤与人事系统打通,实现了考勤数据自动核算。
(1)配置订阅
记下加密和签名,写入SDK的配置中。(权限申请略)
(2)设计回调接口
记下加密和签名,写入SDK的配置中。(权限申请略)
访问接口的主要算法:
- $app->push(function ($payload){
- $type = $payload['EventType'];
- switch ($type) {
- case 'attendance_check_record':
- 处理函数($payload, '员工打卡事件');
- beak;
- ... 其他订阅事件处理方式略 ...
- });
- return $app->serve();
(3)将接口反填到内部应用到请求地址上
以上即可实现每次订阅都会将消息通过接口地址发到你的服务器上。
下图展示的是员工打打卡接入后的实例:
-
解决的场景:通过钉钉机器人接口,实现机器人消息通知,将企业自有消息通知与钉钉消息通知打通,实现消息通知自动化。通知内容例如销售日报通知、生产任务目标通知
通过消息订阅和免登录,企业自有的ERP已经可以对接钉钉了。但是具体生产场景的实时消息,还不会收到实时的消息通知。这里我将介绍下通过机器人的消息提醒来实现具体生产场景的通知。
1在开发者后台中,我们新增一个机器人。
和企业内部应用一样,这里我们也需要将机器人的配置信息塞到我们自定义的SDK中。
2发送消息:
单聊:$robot->singleMsg(new Text(“123”), $userid);
- 群聊:$robot->setWebHookToken($token)//在群中机器人配置中可以获取
- ->setSppSecret($sign)//加签
- ->atUserids($userid)//@圈人
- ->sendGroup(new Text(“123”));//消息内容
这里我们看下实际上的应用举例。我们系统的品质模块会自动监听生产过程中的异常信息,这些信息需要人员去处理。系统内部也有消息机制,会发消息通知对应人员,需要人员定时去查看。但是,如果人不在公司,或者没有主动去查看消息,一些重要的消息就错过。
这里就可以通过钉钉机器人,将异常信息、企业自有系统的消息通知机制和钉钉打通。
我们看下具体的应用实例:
(1)ERP中实现圈人
(2)机器人发送消息给对应的人
(10)在消息中打开ERP中的链接并处理
02钉钉应用开发带来的变化
“业务系统与钉钉的集成远远不止这些,在纺织行业的实际应用中我们也还使用来了待办任务、单据审批等待接口。通过接入钉钉,我帮助我所在的企业逐渐实现数字化转型,看到了使用前后工作流程的简单化、便捷化。”
——「开发者」说
附录:
本文开发者当前用的PHP版本自定义SDK和实例开源链接如下,祝你快速上钉。
1)钉钉SDK,支持订阅,机器人,身份验证,人事,日志,考勤等等一堆功能
https://gitee.com/chinakaiyuan/dingtalk
2)使用文中SDK 的使用实例
https://gitee.com/chinakaiyuan/laravelgrid