2.1 官方说明文档
官方说明文档地址如下:
https://developers.dingtalk.com/document/app
2.2 免密部署流程
(1)登陆钉钉开放平台的开发者后台企业管理,登陆地址为:
(2)记录CorpId。
(3)在应用开发中创建一个企业内部微应用。
(4)填写好相应的应用信息。
注意:应用首页链接和PC端首页地址,vision/dingding/dingding.jsp 和 vision/dingding/dingdingpc.jsp 不能随意修改成 openresource.jsp 或者 index.jsp等的方式,这样会导致无法进行免密登录。
(5)给应用开通相应权限。
(6)在基础信息中记住相应的AgentID、AppKey和AppSecret。
(7) 设置Smartbi的系统选项,将刚刚记录的CorpId、AgentID、AppKy和AppSecret填写在相对应的位置。
(8)在Smartbi中新建用户,新建别名与钉钉企业通讯录中的姓名相同,此处填写的是管理者的名字,而不是昵称。
(9)配置完成后重启,即可进行利用钉钉进行免密访问smartbi了。
2.3 发送企业消息
发送企业消息需要基于 免密部署 的基础上完成的。
(1)进入需要利用企业信息监控的报表宏。
(2)给报表添加以下宏代码,注意图中提示,修改对应位置的代码,不然发送的消息会出现异常。
/*名称:sendinfotoDD 类型:ClientSide 对象:spreadsheetReport 事件:onRenderReport */ var util = jsloader.resolve('freequery.common.util'); function main(spreadsheetReport) { //封装钉钉企业消息体 var msgContent = {}; //消息接收者在钉钉中点击消息内容,将打开如下链接,完成免登后,打开resid对应的报表。 msgContent.messageUrl = "http://10.10.101.90:8080/smartbi/vision/dingding/ddopenresource.jsp?resid=I402882c701552f492f49736e01552f4df2c50013&random=" + Math.random(); //消息标题 msgContent.title = "报表跳转了"; //消息文本 msgContent.text = "报表id是I402882c701552f492f49736e01552f4df2c50013"; //消息图标 msgContent.picUrl = "https://www.baidu.com/img/baidu_jgylogo3.gif"; var msgString = JSON.stringify(msgContent); //调用后端DDModule. sendLinkCorpConversation()方法,由后端请求钉钉服务器,发送企业消息 util.remoteInvokeEx('DDModule', 'sendLinkCorpConversation', [msgString, ['收件人']]); //推送新方法,需要传递3个参数 //util.remoteInvokeEx('DDModule', 'sendLinkCorpConversationExt', [msgString, ['韩某某'], []]); //推送新方法,可排除指定手机号的用户,如下:推送报表给指定用户但排除其中电话为13661234567的用户 util.remoteInvokeEx('DDModule', 'sendLinkCorpConversationExt', [msgString, ['韩某某1', '韩某某2'], ['13661234567']]); }
(3)添加完后即可在打开报表时,在钉钉收到企业信息提示了。
3. 注意事项
- smartbi所在服务器的网络需要正常访问钉钉域名dingtalk.com。
- 若是后台提示ip不在白名单内,则将该ip添加到服务器出口IP处即可。
- 代码修改的位置需要正确,否则发消息会出现异常。
- 如果没有实现免密登录,即还是需要输入用户名和密码,请检查下应用首页链接和PC端首页地址 的配置是否正常。应用首页链接和PC端首页地址,vision/dingding/dingding.jsp 和 vision/dingding/dingdingpc.jsp 不能随意修改成 openresource.jsp 或者 index.jsp等的方式,这样会导致无法进行免密登录。
- 当Smartbi同时集成了钉钉和CAS,更换新的CAS扩展包后,使用钉钉访问Smartbi内的应用时,不会跳转到CAS登录界面,无需再次登录即可访问相关报表资源。