历史版本25 :微信集成 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 创建企业微信应用编辑

管理员登录企业微信后,点击企业应用,添加应用,如下图:
222
上传应用logo,填写应用名称,应用介绍选填,设置可见范围(这里的可见范围只能选择部门,不能选择成员,因为单个用户将无法读取),设置完成后,点击创建应用,如下图:
222
这样应用就创建好了,如下图:
222

2. 报表服务器准备编辑

2.1 报表服务器要求
您的报表服务器必需是能够访问外网的,并且如果是http协议则访问端口不限,如果是https协议访问端口必需包含443
您的报表服务器必需是8.0及以上版本的。
您的Jdk必需是1.6及以上版本的。
2.2 微信管理插件安装
为了简化微信集成,FR开发了微信管理插件,将微信的相关配置从后台转为前台可视化界面操作,实现了微信集成基本信息配置、内置回调URL验证、同步微信通讯录并与报表用户关联实现单点登录以及定时发送消息至微信成员。FR还在继续开发常用的管理界面。
a.安装微信插件
设计器插件安装方法参照插件的安装管理
服务器安装插件方法参照服务器上安装插件
b. 安装后的效果
安装微信管理插件后,打开报表管理平台,管理系统下会增加“微信管理”节点,微信相关的配置管理都将会放在这个节点中去配置:
222
同时,设置定时任务的最后一步输出设置中,会增加“推送微信消息”:
222
微信管理插件的使用我们在回调模式配置及定时推送消息至微信中详细介绍。
2.3 手机浏览器报表插件
微信集成的企业应用中打开的只能是HTML5页面,不能使用FR新版移动app的原生解析功能。 FR开发了手机浏览器HTML5浏览方式,实现手机浏览器中报表的自适应、参数界面分离等效果。 移动终端HTML5浏览方式仅对分页报表进行了处理,详细请查阅移动端Html5报表
设计器插件安装方法参照插件的安装管理
服务器安装插件方法参照服务器上安装插件
2.4 需要commons-codec-1.9.jar包
报表服务器请使用jdk1.6或以上的版本。需要将commons-codec-1.9.jar包拷贝到报表服务器WEB-INF/lib下面,如果已经存在其他版本,例如我们设计器工程里已存在commons-codec-1.6.jar,则可以不需要再导入;
2.5 更换JCE无限制权限策略文件
需要根据jdk版本,替换%JDK_HOME%/jre/lib/security目录下的local_policy.jarUS_export_policy.jar这两个jar包,此为JCE无限制权限策略文件,如果不做这步操作,会有java.security.InvalidKeyException:illegal Key Size异常,从而不能正确进行微信AES解密。
请到官网下载对应的JCE版本,示例下载地址1.8jdk对应的jce
注:如果所用的中间件自带java环境,替换的时候需要下载对应的jce到指定的java_home,如websphere,下载对应版本的jce,替换到%WebSphere_HOME%/App/Server/java/jre/lib/security

3. 基础信息设置编辑

登录FR管理平台,点击管理系统-微信管理-基本信息,只需填写微信企业号ID和管理组凭证密钥,不需要填写Token和EncodingAESKey,如下图:
222
注:从老版微信升级到企业微信的,Token和EncodingAESKey删除后刷新还存在,可参考旧版微信升级企业微信
注:复制粘贴ID和密钥时注意检查前后是否有多余的空格,如果有多余空格可能会导致成员管理刷新后无法显示通讯录等问题。
a.微信企业号ID来源于企业微信管理平台里的我的企业-企业信息的CorpID,如下图:
222
注:企业logo和简称可以修改。
b.管理组凭证密钥,来源于企业微信管理平台里的刚刚创建的企业应用里的Secret,如下图:
注:老版微信升级成企业微信会出现两个Secret,需要仔细核对Secret或配置应用权限,具体请查看旧版微信升级企业微信
222

4. 用户匹配编辑

微信用户与报表用户的匹配方式有三种:

(1)根据微信成员名匹配
(2)根据手机号匹配
注:平台用户手机号非唯一,如果遇到多个报表平台用户为同一手机号,后台匹配的时候取第一个匹配到的报表用户。
(3)手动匹配
默认为“根据微信成员名匹配”,如下图所示:
222
这里以手动匹配为例介绍,点击管理系统>微信管理>微信成员管理,选择手动匹配,若你的微信成员名和报表用户名相同,则报表用户名处不需要修改,若微信成员名和报表用户名不相同,则设置和微信用户关联的报表用户。
注:若是以管理员账号登陆微信的,需要手动关联报表用户名。
注:微信成员默认不展开,需要点击查询按钮查看或搜索。
222
“更新通讯录”可手动刷新微信成员,在微信管理中配置完基本信息,若微信通讯录未更新,点击更新通讯录,即可刷新该企业微信中的成员。

5. 企业微信配置编辑

5.1 主页配置

进入刚刚自建的应用-文档测试:

222
1)可见范围:选择用户所在的部门,不能选择单个成员,因为单个用户将无法读取,示例文档组
2)网页授权及JS-SDK(可信域名):域名和端口号,示例www.finereporthelp.com:8181
3)勾选“在微信插件中始终进入主页”则成员在微信中点击应用将始终进入企业设置的主页,若勾选了这个选项,则普通微信中收不到推送消息
4)工作台应用主页:企业微信中点击应用打开的页面,url规则如下
https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxxxxxxxx&redirect_uri=xxxxx&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
链接中需要包含以下参数:

appid:企业的应用ID即CorpID

redirect_uri:授权后重定向的回调链接地址,报表访问url,需要使用urlencode对链接进行处理

response_type:返回类型,此时固定为:code

scope:应用授权作用域,此时固定为:snsapi_base

state:重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值

wechat_redirect:微信终端使用此参数判断是否需要带上身份信息

例如,fs登录url为www.finereporthelp.com:8181/WebReport/ReportServer?op=fs 进行urlencode(utf-8编码)编码后url为:
www.finereporthelp.com%3a8181%2fWebReport%2fReportServer%3fop%3dfs
最终,微信中网页链接地址,就是将上方appid后面的xxx替换为——企业的应用ID即CorpID,和redirect_uri后面的xxx替换为——编码后的url,进行替换后如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wwb2f5a71873a5d3d9&redirect_uri=www.finereporthelp.com%3a8181%2fWebReport%2fReportServer%3fop%3dfs&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
这样主页就配置好了,移动端打开企业微信app,效果如下:
222222

5.2 自定义菜单配置

点击自定义菜单,如下图:
222
网址url的规则与上面主页配置相同,只需要将fs登录url换成某个报表h5访问的url,示例如下:
http://www.finereporthelp.com:8181/WebReport/ReportServer?reportlet=demo/basic/ParagraphDetails_phone.cpt&op=h5
最终url如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wwb2f5a71873a5d3d9&redirect_uri=http%3a%2f%2fwww.finereporthelp.com%3a8181%2fWebReport%2fReportServer%3freportlet%3ddemo%2fbasic%2fParagraphDetails_phone.cpt%26op%3dh5&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
若开启了模板权限时,设置自定义菜单需要使用WeiXinServer,具体可参看开启模板权限时访问单个模板需要用WeiXinServer
填写主菜单,设置菜单内容为跳转到网页,填写网址,都填写完成后,点击保存,如下图:
222
点击发布,才能生效,如下图:
222
这样自定义菜单就配置好了,移动端打开企业微信app,效果如下:
222
222
222
注:企业微信中使用的自定义菜单,想直接看到自定义菜单,则推荐在微信里面绑定一下主页链接,如果不想绑定主页链接,仍然想看菜单,那么无法直接看到,只能推送一个消息,在企业微信的消息列表界面中去看自定义的报表菜单。

6. 微信插件编辑

若发布成功后,无法查看到该推送,需要新增一个定时任务,在企业微信的消息列表界面中查看刚刚设定的自定义报表菜单。
另外这里都是企业微信里查看的效果,如果是普通微信,可以扫描二维码关注,在普通微信中即可出现一个企业号,即可在企业号中查看主页内容或收到推送消息,如下图:
222
点击微信插件Logo,上传图片后,即可扫描二维码,加入该企业。
222
若勾选“在微信插件中始终进入主页”,则从文档测试应用进去,显示数据决策系统主页,收不到推送消息,如下图所示:
222
若勾选“在微信插件中始终进入主页”,则可收到推送消息,可以查看推送的内容和配置的自定义菜单,如下图所示:
222
微信单点登录及权限控制
(1)单点登陆
在手机企业微信app里,您可以看到是不需要登陆fs,直接可以查看结果的。而如果您使用手机浏览器访问相同的报表,您会发现,是需要登录的。那是因为,将微信成员与报表用户关联后,通过微信企业应用进入查看报表时,在FR后台,我们会使用微信的OAuth2接口进行用户验证并获取对应微信成员名,然后关联报表用户并自动登录,从而实现微信单点登陆。
(2)权限控制
微信应用的菜单是在微信中管理,所以哪些成员可以看到的哪些报表这是在微信中控制。比如您可以创建多个报表应用,每个应用的查看权限选择不同的成员或组。
用户在微信中打开报表,是否可以查看报表的内容,以及可以查看的数据这部分是在FR报表端控制的,控制方法与PC端是一样的,比如可以通过角色控制可查看的报表,可以在报表模板中通过sql语句通过用户名过滤来实现不同用户看到的数据不同等等。

7. 定时推送消息编辑

7.1 普通推送
注:如果要用企业微信的推送功能,微信插件需要升级到1.19及以上版本
开发服务器可以主动的发送消息给企业成员,比如使用FR定时器生成好报表后,发送消息给相应的人员进行查看。 进入FR管理平台,添加定时任务:
222
222
到输出设置这步,比如我们将定时生成的结果挂在某个目录下面,并且命名为测试定时任务:
注:微信成员需要有这个目录的查看权限,才能够查看生成的结果,具体用法请请查看定时调度
注:发送微信消息必须挂载虚拟目录,虚拟目录需要在报表管理>目录管理,新建一个目录名称或则在已有的目录中进行发送任务。(购买软件需要拥有决策平台功能才能新建目录)
222
通知与存档选择推送微信消息,例如下设置,这样定时任务结束后,caixiaolan这个微信成员以及产品部门的所有成员都可以收到消息:
222

定时生成结果的文件名:对应发送消息的标题名

企业应用ID:发消息至哪个应用,应用ID查看方法:打开应用中心-选择你要用哪个发送的应用-点击后会有应用ID。

微信用户:发消息给哪些成员,下拉框中会自动读取微信通讯录中的所有成员,多个成员之间用|分割,比如Jane|Saber

部门ID:发消息给某个部门的所有成员,该属性与微信用户是并的关系,不同部门之间也用|分割

消息内容:定义消息的正文内容

定时结果访问连接:勾选的话会在消息正文最后加上定时生成的结果连接,点击后就可以直接打开定时结果;不选的话则只发送纯文本消息。

定时任务设置好后,比如任务每分钟都会执行,每次执行后就会推送消息给对应的成员,效果如下:
222
7.2 根据不同人推送不同消息
服务器可以主动的发送消息给企业成员,可以根据不同人推送不同消息。 要实现这种效果,首先需要制作模板,将数据根据用户进行过滤,实现不同的用户登录,只能看他自己的数据,报表设计如下:
222
给A2(姓名)单元格设置过滤属性,使姓名等于参数$fr_username
进入FR管理平台,设置定时任务:
222

222
文件名称为“测试”,设置根据用户选择不同的内容,选择需要推送的用户:
222
注:这时微信的成员名应与决策系统中的报表用户名相同,否则无法读取到该用户。
222
到输出设置这步,比如我们将定时生成的结果挂在某个目录下面,并且命名为定时结果:
注:微信成员需要有这个目录的查看权限,才能够查看生成的结果,具体用法请请查看定时调度
注:发送微信消息必须挂载虚拟目录,虚拟目录需要在报表管理>目录管理,新建一个目录名称或则在已有的目录中进行发送任务。(购买软件需要拥有决策平台功能才能新建目录)
222
定时任务设置好后,比如配置结束立即执行,就会推送消息给对应的成员,效果如下:
222