“在2020年初那个疫情卷地百草折,又是胡天飞雪的时候,钉钉就像一夜春风带来的梨花一样带给我们希望和力量,从最初的审批、待办、日程等基础功能的使用,到后面的内部集成开发,办公效率是一步一步提高,数字化理念也慢慢的融入大家的工作中。”
——「开发者」说
01初识钉钉——忽如一夜春风来
20年初的时候重庆品胜科技有限公司正式放弃之前使用的OA产品,启用钉钉。虽不是春天,但它就像一阵春风一样,在被疫情包围的凛冬刚过,就为这家公司带来了温暖。在当时,虽然有些人还不习惯从旧产品切换过来,但是就已用的人员反馈来看,效果还是非常理想的。智能审批、待办事宜、日程日历、视频会议等等功能,在真正实现了无纸化办公的同时,还明显感觉到了工作效率的提高,而且数据可视化可分析,更便于企业管理。
02应用开发初体验——稳住心态,直击痛点
“从开始使用钉钉之后,作为一位开发者,我也开始解决不同系统间钉业务集成开发问题。随着公司业务的扩大,联系人联系记录的存档我们在使用云枢CRM系统,供应链必须的业务系统又采用了金蝶ERP,因而我首批需要解决的问题就是云枢、金蝶ERP与钉钉系统的集成开发问题。”
——「开发者」说
(一)云枢BPM和钉钉系统的集成
- 基础集成——实现钉钉免登录
基础集成可实现将云枢作为小程序嵌入工作台实现一键免登录,且流程消息可以发送到钉钉。
使用的钉钉关键能力:
- 通知机制: 业务消息通知——消息通知概述
- 权限验证:授权免登权限基础能力——身份验证(免登)
- 数据同步:组织架构和人员信息自动同步——企业OA系统与钉钉通讯录实现同步
- 二次开发集成——建议数据同步通知预警机制
云枢上自定义的页面和功能就需要二次开发集成到钉钉。
解决场景:
在进行数据同步的过程中,云枢和金蝶ERP双向同步花名册、快递信息这些数据之后,如果同步失败需要推送消息到钉钉通知到维护人员。
方法:首先可以用postman调试通授权接口,但最初因为钉钉接口有配置IP白名单的限制,开发过程中没发现所以一直没调通。后面采用了中间服务器做了代理的方法,以方便调试。然后根据授权的token去调用发送工作通知的消息接口,消息格式有文字、卡片、markdown等几种类型,很丰富,都可以直观表达出内容。
使用的钉钉关键能力:
(二)金蝶ERP和钉钉的集成
- 基础集成—实现钉钉与金蝶ERP系统账号互通免登
解决的场景:
金蝶ERP系统在钉钉工作台上实现一键免登录,通过钉钉账号登录企业内部系统。
方法:
钉钉只能在自建的应用上面挂固定的跳转URL地址,所以直接把金蝶的单点登录授权地址放上去不合适。仔细查阅钉钉文档后发现钉钉H5微应用的前端api可以在客户端动态获取到每个用户的详情信息,思考可以使用一个跳转页面来支撑这个功能。
- 在后台新建一个H5应用,进入“设置—开发管理—应用首页地址”放入一个公网可访问的自定义开放的跳转页面地址;
- 在跳转页面中引入H5微应用的jsapi,在页面中添加dd.ready加载的时候就可以通过JSapi接口(runtime.permission.requestAuthCode)获取到授权码code;
- 然后调用服务端接口通过免登码获取用户信息
- 然后再根据用户姓名和金蝶提供的三方授权参数信息一起去获取金蝶ERP的登录TOKEN;
- 实现金蝶系统在钉钉工作台上进行一键免登录
使用的钉钉关键能:
- H5微应用:jsapi:dd.runtime.permission.requestAuthCode({})——获取微应用免登授权码
- 获取访问凭证:
- 服务端API- 获取企业内部应用的access_token
- 身份验证(免登):
- 服务端API-通过免登码获取用户信息
- 通讯录管理
- 服务端API-用户管理-根据userId获取用户详情
03钉钉带来的改变——千树万树梨花开
虽然开始的过程是痛苦的,但是雨后的彩虹是美丽的。到目前为止,品胜与钉钉的集成主要集中在三方系统的集成,包括云枢、金蝶、云盒子、史泰博等系统,将多个应用系统均放置在了钉钉工作台,实现了入口的集合,并且进行了帐号打通实现了在钉钉工作台的免登录。