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

目录:

1. 概述编辑

网络环境畅通是实现微信钉钉集成的重要前提,本篇介绍微信钉钉集成所需的各种网络要求,以及对应网络环境下的部署配置。

2. 网络要求编辑

配置微信钉钉集成环境的操作,需要两条网络线路都畅通:

1)报表服务器上添加微信/钉钉应用时,需要能够访问微信/钉钉服务器;

2)移动设备单点登录时,需要能访问报表服务器。

2.1 报表服务器访问微信/钉钉服务器

2.1.1 添加微信/钉钉应用与同步通讯录

微信/钉钉集成配置时,需要调取微信钉钉开发的接口来实现单点集成。

  • 在「管理系统」的微信/钉钉管理页面,添加应用。对应配置如下:

2021-06-08_11-53-29.png

  • 在同步通讯录的时候,可以通过接口获取微信/钉钉后台的一些token,用户信息等。对应配置如下:

2021-06-08_13-45-23.png

微信钉钉服务器提供的接口格式如下:

  • 微信:https://qyapi.weixin.qq.com/cgi-bin/xxxx

  • 钉钉:https://oapi.dingtalk.com/xxxx

网络要求:

故为保证集成正常配置,需要保证报表服务器能够正常访问微信/钉钉服务器,正常调用这些接口获取信息。

影响:

若报表服务器无法访问微信/钉钉服务器,则在上述应用添加和通讯录同步阶段,会因为网络异常而操作失败。

2.1.2 钉钉集成使用文件上传控件

在集成环境下,若模板中配置有文件上传控件,在上传图片以后,图片会存储到微信/钉钉对应服务器上,提供一个图片路径 url 给模板访问,此时需要报表服务器能够访问对应图片存储服务器,保证图片的正常加载。

微信钉钉图片存储路径对应域名如下:

  • 微信:https://qyapi.weixin.qq.com/xxx

  • 钉钉:https://static.dingtalk.com/xxx

网络要求:

  • 微信:由于微信图片存储的域名与上述 2.1.1 中接口调用域名一致,故不需要单独配置网络。

  • 钉钉:钉钉图片存储的域名与钉钉接口调用的域名不一致,需要单独开放网络,确保报表服务器可以访问图片存储域名服务器。

影响:

如果这部分网络受阻,对钉钉集成环境整体使用没有影响,但是在集成环境下,模板中文件控件上传图片以后,对应图片不会显示在文件控件栏中。

2.2 移动设备访问报表服务器

微信钉钉集成配置完后,通常是需要使用移动设备来访问报表平台地址,查看对应的模板数据。

2.2.1 微信集成报表服务器

由于微信管理平台对集成的地址有一定的要求,故报表服务器一定是可以被外网访问的,并且一定是域名地址,不能用 IP 地址。

域名地址举例http://xxx.xxx.com:xxx/webroot/decision。如果是http://IP:xxx/webroot/decision,是不可以做微信集成的。

注:请使用二级或二级以上域名,且需通过 ICP 备案。

当报表服务器配置好域名访问地址以后,需要将对应的域名地址填写到「微信管理>报表服务器地址」栏中,点击「保存」。

1588078722629085.png

这里服务器地址格式的填写要求如下:

Finereport服务器访问地址
报表服务器地址填写注意事项
http://IP:xxx/webroot/decision-IP地址不可用,需要转化为外网域名地址
http://xxx.xxx.com:xxx/webroot/decisionhttp://xxx.xxx.com:xxx/webroot/decision-
http://xxx.xxx.com:xxxhttp://xxx.xxx.com:xxx/decision工程名缺省的平台地址,需要在后面带上/decision
https://xxx.xxx.com:xxx/webroot/decisionhttps://xxx.xxx.com:xxx/webroot/decision-
https://xxx.xxx.com/webroot/decisionhttps://xxx.xxx.com:443/webroot/decisionhttps协议地址且缺省端口的,需要带上默认端口443

2.2.2 钉钉集成报表服务器

钉钉管理平台对集成的地址没有域名的限制,只需要可以被外网访问即可(PS:因为移动设备一般是在外网网络环境下访问平台的)。故报表服务器可以是外网域名地址,也可以是外网 IP 地址。

当报表服务器配置好外网访问地址以后,需要将对应的外网地址填写到「钉钉管理>报表服务器地址」栏中,并「保存」。

2021-06-08_14-22-03.png

这里服务器地址格式的填写要求如下:

Finereport服务器访问地址服务器地址填写注意事项
http://IP:xxx/webroot/decisionhttp://IP:xxx/webroot/decision-
http://xxx.xxx.com:xxx/webroot/decisionhttp://xxx.xxx.com:xxx/webroot/decision-
http://xxx.xxx.com:xxxhttp://xxx.xxx.com:xxx/decision工程名缺省的平台地址,需要在后面带上/decision
https://xxx.xxx.com:xxx/webroot/decisionhttps://xxx.xxx.com:xxx/webroot/decision-
https://xxx.xxx.com/webroot/decisionhttps://xxx.xxx.com:443/webroot/decisionhttps协议地址且缺省端口的,需要带上默认端口443

3. 网络检测编辑

对于 2. 网络要求 中,提到的网络场景,这里给出较为简单的检测方法。

3.1 报表服务器访问微信/钉钉服务器

注:检测网络能够访问微信/钉钉服务器,不可以通过直接将微信钉钉域名输入浏览器中来检测。

3.1.1 方案一:命令行ping

在报表环境所在的服务器上,打开 cmd 命令行窗口, ping 对应的微信/钉钉服务器域名地址。如下图所示:

  • 微信服务器:ping qyapi.weixin.qq.com

  • 钉钉服务器:ping oapi.dingtalk.com

  • 钉钉图片存储服务器:ping static.dingtalk.com

企业微信截图_1621586855543.png

注:这里ping的是微信钉钉接口调用对应的域名,而并非登录微信钉钉后台管理平台的地址,例如微信管理平台域名为  work.weixin.qq.com  ,与接口调用的域名不一致。

3.1.2 方案二:微信钉钉调试工具检测

如何使用调试工具参考文档: 微信钉钉调试工具

  • 若检测如下结果,说明网络畅通。

企业微信截图_16215873272598.png

  • 若检测如下异常,则说明网络异常,需要网络管理员调整网络环境。

企业微信截图_16215872582019.png

3.2 移动设备访问报表服务器

用移动设备,比如手机,在手机浏览器中访问平台地址http://xxxx:xxx/webroot/decision,看能否显示报表登录页。

能显示则说明网络畅通;访问失败则说明网络异常。

4. 不同网络情况下配置编辑

4.1 网络顺畅

若在 3. 网络检测 中检测两条网络线路均正常,则请查看文档 企业微信集成 和 钉钉管理插件,可以进行对应的微信钉钉集成配置。

4.2 网络不通

若两条线路任意一条线路访问有问题,可以请专门的网络管理员,对网络配置进行调整,从而实现两条线路双方通信。

部分用户,基于网络安全的考虑,可以通过 IP 外网映射实现 2.2 移动设备访问报表服务器 的网络要求,但是无法让报表服务器访问到微信服务器,针对这种场景,这里提供一个解决方案:

使用代理服务器实现  2.1报表服务器访问微信/钉钉服务器 的网络要求。

配置步骤如下:

1)找一台服务器作为代理服务器,通过这台代理服务器接收报表服务器发送的网络请求,并将请求转发至微信/钉钉服务器

以图例为例,报表服务器可以访问代理服务器,代理服务器可以访问微信/钉钉服务器。

企业微信截图_16215948196340.png

2)在代理服务器172.16.0.12上,安装nginx,下载安装配置见:代理服务器配置

3)在代理服务器上配置 nginx 的正向代理。修改配置文件conf/nginx.conf,在 http{} 之间添加如下代码:

  • 微信服务器正向代理:

server {
    listen 8113;  # 微信代理服务器端口
    server_name 172.16.0.12;  #代理服务器IP
    location / {
        proxy_redirect off;
        proxy_pass https://qyapi.weixin.qq.com;#微信服务器域名地址
    }
    location = /favicon.ico {
        log_not_found off;
    }
}
  • 钉钉服务器正向代理

server {
    listen 8114;       # 钉钉代理服务器端口
    server_name 172.16.0.12;    #钉钉代理服务器IP
    location / {
        proxy_redirect off;
        proxy_pass https://oapi.dingtalk.com; #钉钉服务器域名地址
    }
    location = /favicon.ico {
        log_not_found off;
    }
}

4)nginx 配置好以后启动,然后在平台上微信/钉钉管理的「应用快捷配置>代理服务器地址」中添加对应代理地址即可。

上述实例中对应的配置如下:

  • 微信管理配置代理服务器地址为:http://172.16.0.12:8113

2021-06-08_14-51-16.png

  • 钉钉管理配置代理服务器地址为:http://172.16.0.12:8114

2021-06-08_14-53-11.png

5)测试连接通过后「保存」,则网络环境配置完成。

可以查看文档 企业微信集成 和 钉钉管理插件,进行对应的微信/钉钉集成配置。

注 1 :快捷配置中的代理服务器配置项,仅在报表环境需要配置正向代理转发时使用。

注 2 :2.1 报表服务器访问微信/钉钉服务器 网络要求满足的情况下,代理服务器这里不要填写!

注 3 :平台地址,外网映射的ip/域名,模板地址,以及各类链接等,均不可以填写至代理服务器配置项中!

4.3 服务器私有化部署

常用的微信/钉钉集成,都是使用的公网服务器,即微信/钉钉后台管理平台地址如下:

部分用户的微信/钉钉服务器做了私有化部署,单独搭建了一套服务器环境,针对这种场景,也有对应的配置方案.

配置方案

1)获取私有化微信/钉钉服务器的接口地址。

由于服务器私有部署,对应服务器的接口调用域名就不能用公网的域名,需要在环境部署阶段,了解微信/钉钉官方文档,获取对应私有化部署的服务器接口调用域名,这里举两个例子:

例:微信私有化环境接口域名为:https://private.weixin.com  ;钉钉私有化环境接口域名为:https://private.dingtalk.com

注:实际私有化部署服务器对应的接口地址,请通过微信/钉钉官网部署文档查看获取。

2)检测报表服务器访问私有服务器的网络情况。

参照  3.1.1 命令行检测方法,在报表服务器上ping对应的微信钉钉接口域名。

  • 微信服务器:    ping private.weixin.com

  • 钉钉服务器:    ping private.dingtalk.com

3)接 步骤2)的检测结果,若 ping 通,则直接将微信钉钉的私有化域名填写至代理服务器页面,如图所示,私有化部署网络环境配置完成,可以查看帮助文档 企业微信集成 和 钉钉管理插件,进行对应的微信钉钉集成配置。

  • 微信代理服务器配置:

  • 钉钉代理服务器配置:

4)接步骤2)的检测结果,若ping不通,显示网络超时或者丢包等结果,则需要参考  4.2网络不通 ,配置正向代理实现

网络要求:报表服务器可以访问代理服务器,代理服务器可以访问私有化部署的微信钉钉服务器。

正常安装nginx后,修改nginx正向代理配置文件,将配置代码中的微信/钉钉服务器地址,改成私有化服务器的地址。

  • 微信服务器正向代理

server {
    listen 8113;  # 微信代理服务器端口
    server_name 172.16.0.12;  #代理服务器IP
    location / {
        proxy_redirect off;
        proxy_pass https://private.weixin.com;#微信私有服务器域名地址
    }
    location = /favicon.ico {
        log_not_found off;
    }
}
  • 钉钉服务器正向代理

server {
    listen 8114;       # 钉钉代理服务器端口
    server_name 172.16.0.12;    #钉钉代理服务器IP
    location / {
        proxy_redirect off;
        proxy_pass https://private.dingtalk.com; #钉钉私有服务器域名地址
    }
    location = /favicon.ico {
        log_not_found off;
    }
}

5)nginx 配置好以后启动,然后在平台上微信/钉钉管理的「应用快捷配置>代理服务器地址」中添加对应代理地址即可。

测试连接通过后「保存」,则网络环境配置完成。

上述实例中对应的配置如下:

  • 微信管理配置代理服务器地址为:http://172.16.0.12:8113

2021-06-08_14-51-16.png

  • 钉钉管理配置代理服务器地址为:http://172.16.0.12:8114

2021-06-08_14-53-11.png

6)可以查看帮助文档 企业微信集成 和 钉钉管理插件,进行对应的微信钉钉集成配置。