Skip to the content.

返回

钉钉集成说明

可以先看下官方文档:钉钉集成流程

1、系统自带了同步钉钉的功能,先在yaml中配置开启第三方APP对接功能。

#第三方APP对接
third-app:
  enabled: true
  type:
    #钉钉
    DINGTALK:
      enabled: true
      # appKey
      client-id: ??
      # appSecret
      client-secret: ??
      agent-id: ??

2、部门同步组件,使用方式:将部门管理组件替换成:system/DepartListSync,然后点击同步钉钉到本地即可。

相关接口:/sys/thirdApp/sync/dingtalk/depart/toLocal

3、用户同步组件,在用户管理中可自动同步,点击同步钉钉到本地即可。TODO 这里用户同步过来,接入部门信息暂未测试,以后有空优化。

相关接口:/sys/thirdApp/sync/dingtalk/user/toLocal

4、扩展消息推送接口

相关接口:/sys/api/sendTemplateAnnouncement/sys/api/sendBusTemplateAnnouncement

想要使用自动推送第三方消息的功能,需要额外添加request参数:?THIRD_APP_TYPE=DINGTALK

完整URL:POST /sys/api/sendTemplateAnnouncement?THIRD_APP_TYPE=DINGTALK

目前支持的类型有:(不传就不会推送)

问题与解决

解决Nginx代理下回调地址无端口问题

线上的Nginx代理环境中,后端获取domain会去掉端口号,如果非默认端口,会导致一些回调地址报错, 比如 http://aa.bb.com:8888 会变成 http://aa.bb.com。 因此最好换成配置形式,这里还有一个解决方案,参考 SpringContextUtils.getDomain() 的逻辑中 可以看到他优先获取 X_GATEWAY_BASE_PATH 的值, 因此在Nginx的代理中,手动设置header即可,如:proxy_set_header "X_GATEWAY_BASE_PATH" http://aa.bb.com:8888;,配置块示例:

# 后端负载
upstream backendServerGongye {
    server 127.0.0.1:8786;
}
server {
    # 后端
    location ^~ /main/ {
        proxy_pass http://backendServerGongye/main/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        # 这里去解决
        proxy_set_header "X_GATEWAY_BASE_PATH" http://aa.bb.com:8888;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #socket
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_connect_timeout 60s;
        proxy_read_timeout 7200s;
        proxy_send_timeout 60s;
    }
}

依赖问题

依赖包需要升级到1.5.2+,旧版本有点问题(此分支已更新):

<dependency>
  <groupId>org.jeecgframework</groupId>
  <artifactId>jeewx-api</artifactId>
  <version>1.5.2</version>
</dependency>

END