1 集成钉钉的前提条件
部署DataViz的服务器需要外网的访问权限,因为要通过访问钉钉的服务器进行登录校验以及获取用户,组织和角色信息。访问域名为:https://oapi.dingtalk.com
2 集成钉钉的使用场景
开发人员通过DataViz的登录页面登录dataviz,制作公共项目以及看板,然后对钉钉用户进行授权,然后团队的其他用户就可以通过钉钉客户端(移动端和PC端)的工作台访问DataViz的看板展示页面,进行看板的查看。
钉钉团队管理员也可以通过工作台(https://oa.dingtalk.com/index.htm#/microApp/microAppList)登录dataviz,如下图:
3 钉钉集成步骤说明
3.1 钉钉开发平台申请应用
- 登录钉钉开放平台,地址:https://open-dev.dingtalk.com/
- 使用管理员登录,然后选择“应用开发”-“企业内部应用”-“H5微应用”-“创建应用”
- 根据实际情况填写先关信息,然后选择“下一步”
- 然后,开发模式选择 “开发应用”,开发应用类型选择“微应用”。服务器出口IP要根据实际的部署服务器进行填写。
如果DataViz部署后的访问地址是 http://www.dataviz.com/dataviz-web/src/index.html,
那么应用首页链接:http://www.dataviz.com/dataviz-web/src/index.html#/dingtalk/mobile;
PC端首页地址是http://www.dataviz.com/dataviz-web/src/index.html#/dingtalk/pc;
管理后台地址是http://www.dataviz.com/dataviz-web/src/index.html#/dingtalk/manage。 然后选择“创建”。 - 然后,选择应用信息的查看详情
- 记录应用的AppKey和AppSecret,后边会用到。
- 然后选择“基本信息”-“开发信息(旧版)”,记录页面中的CorpId和SSOSecret,后边会用到。
3.2 DataViz配置修改
修改dataviz-service\WEB-INF\conf\dingtalk.properties文件,把上面申请应用中第6步和第7步记录的AppKey、AppSecret、CorpId和SSOSecret配置到对应的位置。
修改dataviz-service\WEB-INF\conf\spring\applicationContext-security.xml文件,找到如下配置,并解开注释:
<!-- <authentication-provider ref="dingtalkAuthenticationProvider" /> 勿删 钉钉 登录 需要解开此注释-->
<!-- 勿删 钉钉 登录 需要解开此注释 <beans:bean id="dingtalkLoginFilter" class="com.neusoft.saca.dataviz.authentication.springsecurity.dingtalk.DingTalkAuthentationProcessingFilter"> <beans:property name="authenticationManager" ref="authenticationManager"></beans:property> <beans:property name="authenticationSuccessHandler" ref="dingtalkAuthenticationResultHandler"></beans:property> <beans:property name="authenticationFailureHandler" ref="dingtalkAuthenticationResultHandler"></beans:property> </beans:bean> <beans:bean id="dingtalkAuthenticationResultHandler" class="com.neusoft.saca.dataviz.authentication.springsecurity.dingtalk.DingTalkAuthenticationResultHandler"></beans:bean> <beans:bean id="dingtalkAuthenticationProvider" class="com.neusoft.saca.dataviz.authentication.springsecurity.dingtalk.DingTalkAuthorizationAuthenticationProvider"></beans:bean> -->
<!-- <custom-filter before="FORM_LOGIN_FILTER" ref="dingtalkLoginFilter"></custom-filter> 勿删 钉钉 登录 需要解开此注释-->
修改dataviz-service\WEB-INF\conf\spring\applicationContext.xml文件,找到如下配置:
<bean id="userManager" class="com.neusoft.saca.dataviz.system.impl.UserManagerImpl"></bean> <bean id="roleManager" class="com.neusoft.saca.dataviz.system.impl.RoleManagerImpl"></bean> <bean id="orgManager" class="com.neusoft.saca.dataviz.system.impl.OrgManagerImpl"></bean> <bean id="orgExtManager" class="com.neusoft.saca.dataviz.system.impl.OrgExtManagerImpl"></bean>
修改为:
<bean id="userManager" class="com.neusoft.saca.dataviz.system.dingtalk.DingTalkUserManagerImpl"></bean> <bean id="roleManager" class="com.neusoft.saca.dataviz.system.dingtalk.DingTalkRoleManagerImpl"></bean> <bean id="orgManager" class="com.neusoft.saca.dataviz.system.dingtalk.DingTalkOrgManagerImpl"></bean> <bean id="orgExtManager" class="com.neusoft.saca.dataviz.system.dingtalk.DingTalkOrgExtManagerImpl"></bean>
此项配置是为了对接钉钉做用户、组织和角色集成,但是会会实时查询钉钉服务器,性能较差,尤其用户和组织较多的情况下查询速度会很慢。
可以通过其他的方式进行集成,比如可以通过访问数据库的方式获取数据,重新实现接口,用户集成可参考:系统集成中的《第4章 用户集成》
3.3 发布应用
- 回到钉钉开放平台(https://open-dev.dingtalk.com/#/corph5),点击创建的应用
- 选择“应用发布”-“确认发布”
- 然后,根据实际需要,选择应用的可见范围。
- 应用发布后,可见应用的用户在使用钉钉客户端时,就可以在工作台中看到发布的应用了。