微信集成

SeaTable enterprise 4.1.x 版本开始支持配置微信
实现的效果
  • 电脑网页上用微信扫码登录 SeaTable
  • 手机微信 APP 内部网页链接点击登录 SeaTable
  • 微信公众号消息通知(微信公众号模版消息上限为每天 100000 次)
要点
  1. 注册微信服务号需要给微信提供营业执照和注册费
  2. 微信要求必须有公网域名可访问且备案
  3. 服务器必须能访问到公网的微信 API
需要开通的微信平台
  • 微信开放平台-网站应用
  • 微信公众平台-服务号,并配置模版消息
  • 将服务号绑定到开放平台
  • 注:网站应用和服务号用来获取微信用户信息,实现 SeaTable 微信登录和绑定功能
微信开放平台-网站应用
  1. 进入  微信开放平台  ,点击右上角 注册 ,如有问题查看微信开放平台官方文档:  注册问题 
  2. 注册完成后查看微信开放平台官方文档:  网站应用创建流程 
  3. 登录后点击 管理中心 - 网站应用 - 创建网站应用 ,按照官方文档进行创建。其中授权回调域填写部署 SeaTable 的域名。
  4. 应用创建成功后点击 查看 ,记录下 AppID, AppSecret
微信公众平台-服务号
  1. 查看微信公众平台官方文档:  注册流程指引 
  2. 进入  微信公众平台  ,点击右上角 立即注册
  3. 选择 服务号 ,按照官方文档进行注册。
  4. 登录后点击 设置与开发-基本配置 ,记录下 AppID, AppSecret 。填写 IP白名单 ,下面的 服务器配置 不用填写
  5. 点击 公众号设置 - 功能设置 - 网页授权域名 ,填写部署 SeaTable 的域名,按照说明通过 SeaTable Nginx 进行配置和验证(可联系我们协助配置)
  6. 点击 模板消息 - 从类目模板库中添加 - 搜索 待反馈任务提醒 详细内容 填写如下,并记录下 模板ID
            
                
                
{{first.DATA}}
通知内容:{{keyword1.DATA}}
通知时间:{{keyword2.DATA}}
{{remark.DATA}}
将微信服务号绑定到微信开放平台
SeaTable 配置文件
  • 进入 SeaTable 容器: docker exec -it seatable bash
  • 编辑配置文件: vim /opt/seatable/conf/dtable_web_settings.py
  • 追加以下内容
            
                
                
ENABLE_WEIXIN = True

WEIXIN_APP_ID = 'xxxxxx' # 开放平台 AppID
WEIXIN_APP_SECRET = 'xxxxxx' # 开放平台 AppSecret

MP_WEIXIN_APP_ID = 'xxxxxx' # 公众平台 AppID
MP_WEIXIN_APP_SECRET = 'xxxxxx' # 公众平台 AppSecret

MP_WEIXIN_MESSAGE_TEMPLATE_ID = 'xxxxxx'# 公众平台 消息通知模版ID
  • 重启服务: seatable.sh restart
微信公众号消息通知 定时任务
为了及时收到公众号消息通知,还需要配置定时任务,同步微信扫描登录的用户数据
  • 下载脚本并且拷贝到宿主机:  sync_mp_weixin_openid.py   sync_mp_weixin_openid.sh 
  • 进入 SeaTable 容器: docker exec -it seatable bash
  • 创建目录: mkdir -p /opt/seatable/conf/seatable_custom_functions && cd /opt/seatable/conf/seatable_custom_functions
  • 把脚本拷贝到容器内并添加权限:
            
                
                
docker cp /xx/sync_mp_weixin_openid.py seatable:/opt/seatable/conf/seatable_custom_functions/
docker cp /xx/sync_mp_weixin_openid.sh seatable:/opt/seatable/conf/seatable_custom_functions/
touch __init__.py ## 注意是2个下划线 "__"
chmod +x sync_mp_weixin_openid.sh ##添加执行权限
  • 退出容器,在宿主机上 crontab 添加定时任务脚本,每天 02 点运行一次:
            
                
                
  crontab -e

  0 2 * * * docker exec -d seatable /opt/seatable/conf/seatable_custom_functions/sync_mp_weixin_openid.sh