反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

微信钉钉集成环境准备

  • 文档创建者:April陶
  • 编辑次数:3次
  • 最近更新:April陶 于 2021-06-08
  • 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)可以查看帮助文档 企业微信集成 和 钉钉管理插件,进行对应的微信钉钉集成配置。

    附件列表


    主题: 移动端应用
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526