No description
  • Go 79.3%
  • HTML 6.8%
  • CSS 6.2%
  • JavaScript 4.8%
  • Python 1.4%
  • Other 1.5%
Find a file
ywkj 2ff42062c7 Website: hide the pricing section until there is a plan to show
Without published plans the section showed only the enterprise card and a note
asking visitors to sign in for prices. Now the section and its navigation link
stay hidden until the plan list returns at least one plan; a visitor arriving
at #pricing is taken there once it appears.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 07:13:50 +08:00
.forgejo/workflows ci: build the amd64 image on the Forgejo runner and deploy it from the registry 2026-10-01 09:01:43 +08:00
assets Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
cmd Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
deploy Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
design/duqiao-v1 Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
docs ci: build the amd64 image on the Forgejo runner and deploy it from the registry 2026-10-01 09:01:43 +08:00
internal Show the WeChat login QR on the sign-in page; publish the price list for the website 2026-10-09 06:50:23 +08:00
output Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
saas Show the WeChat login QR on the sign-in page; publish the price list for the website 2026-10-09 06:50:23 +08:00
scripts Show the WeChat login QR on the sign-in page; publish the price list for the website 2026-10-09 06:50:23 +08:00
skills Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
website/duoqiao Website: hide the pricing section until there is a plan to show 2026-10-21 07:13:50 +08:00
.dockerignore Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
.env.example Initial commit: Telegram–Feishu customer service bridge 2026-09-09 22:33:33 +08:00
.env.saas.example When a plan or trial ends, give a grace period, then pause the newest surplus accounts 2026-09-30 15:21:25 +08:00
.env.standalone.example Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
.gitignore Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
assets.go Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
compose.saas-test.yaml Snapshot current multi-tenant SaaS implementation 2026-09-09 22:54:13 +08:00
compose.saas.registry.yaml ci: build the amd64 image on the Forgejo runner and deploy it from the registry 2026-10-01 09:01:43 +08:00
compose.saas.yaml Release go-20261009.1: point the production compose at the new image 2026-10-09 06:50:23 +08:00
compose.standalone.yaml Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
Dockerfile.native Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
go.mod Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
go.sum Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00
Makefile ci: build the amd64 image on the Forgejo runner and deploy it from the registry 2026-10-01 09:01:43 +08:00
README.md Replace the Python implementation with the Go service 2026-09-26 18:52:50 +08:00

渡桥:Telegram ↔ 飞书客服

一个原生 Go 服务,在同一工作台按接待账号选择两种 Telegram 模式。网页、数据库迁移、翻译、飞书接收与发送队列均由该服务提供;数据库沿用 PostgreSQL。

模式 回复与联系能力 接入方式
机器人授权 客户最后来信后 24 小时内回复 Telegram Business 机器人授权
个人账号登录 跨天回复、指定客户主动联系 工作台扫码确认及按需两步验证,也可验证码登录
一个工作台 / 一个 Go 服务
  +-- 账号 A:机器人授权 ---+
  +-- 账号 B:个人账号登录 -+--> 共用飞书话题、翻译、客服权限、消息队列

已有客户在对应 Thread 回复。新客户通过 /联系 @用户名 建立话题,核对身份后发送首条消息。实际发送受 Telegram 账号状态、隐私与限流约束。

同一个客服群绑定多个个人账号时,主动联系需使用 /联系 接待账号ID @用户名;未指定时会提示选择,不会向多个账号分发。已有 Thread 回复仍按保存的会话自动路由。

多平台演进正在进行:统一渠道、飞书卡片、档案同步和 WhatsApp Cloud API 渠道已进入线上工作台(2026.09.16-go.4)。WhatsApp 尚缺真实应用凭据与测试号码,不能称为已接通。参见 目标与验收、WhatsApp 渠道记录 和 本次发布。

飞书客户卡片已加入本地版本,可在接待设置开启认领、转交、解决和跟进日期;默认关闭。状态更新独立排队,过期卡片在原话题续接,异常发送不自动重复。尚未进行真实飞书卡片验收,参见 卡片阶段记录。

配置与部署

使用 .env.saas.example 和 compose.saas.yaml。个人模式在同一份配置中增加 SAAS_TELEGRAM_API_ID 与 SAAS_TELEGRAM_API_HASH,不需要另一个服务或 Python 运行环境。已有账号默认机器人模式,不自动登录或切换。

开发验证

make saas-test
make check

正式测试全部使用 Go;saas-test 启动已有隔离 PostgreSQL 测试库,不接触正式商家数据。旧密文兼容性使用静态夹具在 Go 中验证,不需要 Python。

Python 旧实现已从仓库删除(2026-09-25),需要时查 git 历史。