双击此处添加文字
钉钉集成
来源: | 作者:佚名 | 发布时间: 2020-12-30 | 310 次浏览 | 分享到:
1.概述
1.1 应用场景
   随着企业内部信息技术的迅猛发展,内部的应用系统越来越多,由于这些系统相互独立,用户在使用每个系统之前都必须   按照相应的系统身份进行登录,为此用户需记住每一个系统的用户名和密码,这给用户带来了不少麻烦。特别是随着系统    的增多,出错的可能性就会增加,收到非法截获和破坏的可能性也会增大,安全性就会相应降低。针对于这种情况,在BI  项 目整体规划中也就有钉钉集成,这样就能减少那些不必要的麻烦,安全性也能够相应的提升。
1.2 功能介绍
环境配置、配置参数、云之家添加应用、钉钉消息推送
2 操作流程
(1)把dingding-cloud拷贝放入到ourwarbi根目录Cross_SBI、Cross_SBI_API同级目录下。

(2)拷贝最新补丁覆盖到Cross_DingDing目录下


(3)配置参数
  配置文件路径‘Cross_DingDingbuildconfigindex.js’
(3.1)sqlite支持库
 dbType: 'sqlite',
 dbSqlite: '../Cross_SBI_API/powerbimeta.sqlite',//sqlite文件路径
(3.2) mysql支持库
 dbType: 'mysql',
 dbName: 'powerbimeta_test', //数据库实例名或者
 dbUsername: 'root', //数据库用户名
 dbPassword: '123', //数据库密码
 dbOp: {
  host: '192.168.0.11',//数据库服务器名称
  dialect: 'mysql',//'mysql'|'sqlite'|'postgres'|'mssql',,
 port: '3306',//数据库端口
  pool: {
    max: 50,
    min: 0,
    idle: 10000,
    acquire: 60000,
  },
  define: {
    timestamps: false
  }
 },
如图:

2.1 免登参数
  AuthUserLogin: {
  show: true,//开启自动同步用户(登录时如果没有用户自动创建BI用户并绑定,如果没有绑定自动绑定对应云之家BI用 户,username,userid和openid相同)
  admintoken: "",//管理员token
  apiurl: "",//bi对应api地址如http://ip:前端应用端口(默认8080)/api
 }
2.2 云之家相关
 ,cloudOp:{
  appid:"500357331",//云之家轻应用id(非云之家App和非桌面版登录轻应用所需)
  secret:"mySe3WCuuD2wTJ0JRXYG",//云之家轻应用secret,即appsecret(非云之家App和非桌面版登录轻应用所需)
 }
 新建完轻应用之后从轻应用明细获取
 如图:

2.3 钉钉相关
  dingding:{//钉钉新授权方式
  appKey:"dingrndp7nkur",
  appSecret:"VQptjkSiCIbd68JVwvSuTBk390WT43L",
 idFromUserid:true,//钉钉id来自钉钉用户userid(默认false)
 },
 agentId: '199247257', // 登录钉钉官网后台管理,在添加微应用的时候获取
 CorpID: 'ding37eb6378f',  //从钉钉开放平台获取的CorpID (后面有说明)
 钉钉添加应用之后从应用详情里面获取对应参数
(1)登陆钉钉开发平台网站地址:https://open.dingtalk.com/

(2)点击应用开发流程创建应用开发,如图:


(3)查看获取CorpID信息:https://open-dev.dingtalk.com/#/testManage?tab=1中获取CorpID

3.其他参数
  serverPort: '3003', //该系统的运行端口号,一般默认即可
 redisPort: 6379, //redis的端口号一般默认即可
 accessURL: ['http://192.168.0.141:3000/chart?fprojid=1'], //集成应用用户验证成功最终跳转地址(一般为BI系统首页地址)
 accessloginURL: ['http://192.168.0.141:3000/login'], ////集成应用用户验收失败最终跳转地址(一般为BI系统登录地址)
4.启动程序
 cnpm i安装第三包
 npm run pm2 启动程序
 pm2 logs Cross_DingDing查看日志,输出以下日志说明参数配置和启动成功
 如图:

   地址栏访问http://(服务器域名或IP): 3003(钉钉服务对应的端口配置文件serverPort对应值),页面现在下面内容说明服   务能正常访问

5.云之家增加应用
 打开云之家官网,登录 http://www.yunzhijia.com/home/

6.钉钉消息推送
(1)配置白名单
 登录钉钉后台找到对应应用填写ip地址,ip地址为部署BI的服务器ip地址

(2)配置Cross_Task项目config

 multiplatform: {
    dd: {
        agentId:'89xxx',
        appK ey:"dinxxx",
        appSecret:"GJgxxxx"
    },
 }
 在应用基础信息中可以找到

(3)特别说明
  消息推送需要使用userid所以配置相关参数时请把idFromUserid设置为true
 idFromUserid:true,//钉钉id来自钉钉用户userid(默认false)


7.V8.1.55版本新增功能
(1)第三方系统集成入口
从奥威BI平台首页的【系统管理】—【集成管理】进入,打开页面如下;


(2)功能及属性
a.基本信息
基本信息页是连通第三方和奥威BI的窗口。
第三方的基本信息包含了钉钉应用对应的AppKey、钉钉应用对应的AppSecret、钉钉应用对应的AgentID的钉钉企业的匹配信息,是连通第三方钉钉与奥威BI的关键。
PS:三者的获取方式参考: https://ding-doc.dingtalk.com/(钉钉开放平台)


b.匹配列
匹配列通过基本信息的窗口,将第三方钉钉用户与奥威BI通过API返回的字段一对一匹配。
匹配列页面包含的基本信息:API结果列、API结果列描述、用户表匹配列。
API结果列:根据API返回结果固定(字段)。
API结果列描述:固定描述。
用户表匹配列:匹配对应用户表字段,设置默认值,可更改。
PS:用户表匹配列根据API返回结果的字段匹配钉钉工号、钉钉手机和钉钉姓名。



注:用户表匹配列,userid和fmobile字段必须匹配,才可在匹配行进行操作,否则匹配行不能进行功能操作。



c.匹配行
匹配行是根据匹配列的匹配方式,匹配第三方钉钉用户与现有BI用户,同时还可以选择对应的第三方钉钉用户同步新增为BI用户。
 


1)用户匹配方式

用户匹配方式有以下4种匹配方式及匹配原则:
①根据钉钉工号匹配:自动根据匹配列中BI用户工号对应的API结果列匹配。
②根据钉钉手机匹配:自动根据匹配列中BI用户手机号对应的API结果列匹配。
③根据钉钉姓名匹配:自动根据匹配列中BI用户姓名对应的API结果列匹配。
④手动匹配:手动选择已有的BI用户绑定。
PS:用户匹配关系下拉(选择匹配方式)更新之后,下面表的【绑定用户列】自动更新,同时表的匹配关系自动更新。
注:在②根据钉钉手机匹配的匹配方式时,若钉钉用户的电话号码有多个(不唯一)时,按照此用户的第一个电话号码进行匹配。


2)选择筛选用户方式及搜索
选择筛选用户方式分为:获取全部用户、获取已匹配用户、获取未匹配用户等3种方式。


3)更新通讯录
我们内部逻辑是将第三方用户的信息表复制到BI的数据库表中方便做一些复杂业务逻辑,所以当第三方用户信息有更新时并不会实时同步到BI存储的第三方用户表,这时就可以通过更新通讯录来同步信息。
例:第三方钉钉通讯录有新增用户张三,管理员可以通过更新通讯录功能将张三的钉钉信息同步到BI中的第三方用户表中,从而才可以进一步使用同步功能将张三同步到BI用户表中成为BI用户。

 
4)同步
我们使用更新通讯录功能将第三方用户的信息表复制存储到到BI的数据库中,进一步使用同步功能将张三同步到BI用户表中成为BI用户。
例:第三方钉钉用户有张三、李四、王五三个用户,BI用户只存在其中部分用户或者不存在其中的用户,这时就可通过同步功能将第三方用户同步成为BI用户。

 

(3)移动端入口
手机钉钉-工作台-115测试(窗口)。

 

从手机端钉钉的bi第三方窗口登陆bi,成功登陆打开的页面如下: