SeaTable enterprise 4.1.x 版本开始支持配置微信
实现的效果
- 电脑网页上用微信扫码登录 SeaTable
- 手机微信 APP 内部网页链接点击登录 SeaTable
- 微信公众号消息通知(微信公众号模版消息上限为每天 100000 次)



要点
- 注册微信服务号需要给微信提供营业执照和注册费
- 微信要求必须有公网域名可访问且备案
- 服务器必须能访问到公网的微信 API
需要开通的微信平台
- 微信开放平台-网站应用
- 微信公众平台-服务号,并配置模版消息
- 将服务号绑定到开放平台
- 注:网站应用和服务号用来获取微信用户信息,实现 SeaTable 微信登录和绑定功能
微信开放平台-网站应用
- 登录后点击 管理中心-网站应用-创建网站应用,按照官方文档进行创建。其中授权回调域填写部署 SeaTable 的域名。
- 应用创建成功后点击查看,记录下 AppID, AppSecret

微信公众平台-服务号
- 选择服务号,按照官方文档进行注册。
- 登录后点击 设置与开发-基本配置,记录下 AppID, AppSecret。填写IP白名单,下面的 服务器配置 不用填写
- 点击 公众号设置 - 功能设置 - 网页授权域名,填写部署 SeaTable 的域名,按照说明通过 SeaTable Nginx 进行配置和验证(可联系我们协助配置)
- 点击 模板消息 - 从类目模板库中添加 - 搜索 待反馈任务提醒,详细内容填写如下,并记录下 模板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'# 开放平台 AppIDWEIXIN_APP_SECRET='xxxxxx'# 开放平台 AppSecret
MP_WEIXIN_APP_ID='xxxxxx'# 公众平台 AppIDMP_WEIXIN_APP_SECRET='xxxxxx'# 公众平台 AppSecret
MP_WEIXIN_MESSAGE_TEMPLATE_ID='xxxxxx'# 公众平台 消息通知模版ID- 重启服务:seatable.sh restart
微信公众号消息通知 定时任务
为了及时收到公众号消息通知,还需要配置定时任务,同步微信扫描登录的用户数据
- 进入 SeaTable 容器:docker exec -it seatable bash
- 创建目录:mkdir -p /opt/seatable/conf/seatable_custom_functions && cd /opt/seatable/conf/seatable_custom_functions
- 把脚本拷贝到容器内并添加权限:
dockercp/xx/sync_mp_weixin_openid.pyseatable:/opt/seatable/conf/seatable_custom_functions/
dockercp/xx/sync_mp_weixin_openid.shseatable:/opt/seatable/conf/seatable_custom_functions/
touch__init__.py## 注意是2个下划线 "__"
chmod+xsync_mp_weixin_openid.sh##添加执行权限- 退出容器,在宿主机上 crontab 添加定时任务脚本,每天 02 点运行一次:
crontab-e
02***dockerexec-dseatable/opt/seatable/conf/seatable_custom_functions/sync_mp_weixin_openid.sh