颜小二 Logo颜小二内容中心

YanXiaoer Insights

技术与运营洞察

从内容生成到多平台发布,从 AI Agent 调用到账号矩阵运营,颜小二把发布这件事变成可调用、可追踪、可持续维护的执行层。

YanXiaoer Insight · 2026-05-10 · 7 分钟阅读

如何搭建多租户内容分发系统(进阶版 30)

给 B2B 内容营销 / SaaS 服务商的实操指南:把发布矩阵做成多租户产品该怎么设计?6 步讲清楚租户隔离、group_code 路由、callback_url 闭环、白标外观与计费维度,附 JSON 示例与排查表。

如何搭建多租户内容分发系统(进阶版 30)

如果你是 B2B 内容营销服务商,常常要面对这种情况:

> 一个客户买你的"内容代发"服务,背后挂着十几个头条号、微信公众号、百家号、知乎账号;下个月再签一个客户,又是一套;半年下来 30 个客户,账号、登录态、回调、计费全在你头上。

这不是"再写一套脚本"能解决的问题。你需要的是一个多租户内容分发系统——架构上租户隔离、操作上独立鉴权、业务上独立计费。

这篇文章把搭建过程拆成 6 步,背后用的是颜小二自媒体发布 API 平台(一个面向多租户场景设计的内容分发执行中台),但思路对自建也有借鉴价值。

多租户内容分发架构示意

这篇适合谁

  • B2B 内容营销公司:要给品牌客户做内容代发服务
  • MCN 与代运营机构:每个艺人/品牌就是一个独立租户
  • 垂直行业 SaaS:在自己的 SaaS 里加"一键全平台发布"功能模块
  • 内容分发集成商:把发布做成产品而不是项目

前置:先想清楚多租户的 3 层隔离

很多团队上来就写代码,结果半年后改架构。先把这 3 层隔离想清楚再动手:

| 隔离层 | 含义 | 关键字段 | |---|---|---| | 租户层 | 一个客户 = 一个租户 | tenant_id / api_key / callback_url | | 分组层 | 同租户下不同账号编组 | group_code | | 任务层 | 单篇文章的幂等单元 | external_id |

颜小二的多租户内容分发执行中台已经把这 3 层做成了默认能力,你不用从 0 设计。

6 步搭建多租户分发系统

第 1 步:定义你的租户开通流程

在你侧的产品后台先做这件事:

1. 客户注册 → 你为该客户在颜小二后台开一个租户(拿到 tenant_id、API Key、API Secret) 2. 把这套凭据加密存进你侧的 tenants 表,与客户业务 ID 关联 3. 给客户分配独立的 callback_url(比如 https://api.your-saas.com/yanxiaoer/cb/{tenant_id}

每个租户独立 API Token、独立 callback_url、独立账号——这是颜小二的设计前提。

第 2 步:账号分组按业务维度切

进入客户的账号管理页时,让客户按自己的业务习惯分组:

  • 按品牌:brand_abrand_b
  • 按行业:techfinancelifestyle
  • 按环境:prodstaging

group_code 命名只要在一个租户内唯一即可。后续发布请求带上 group_code,颜小二自动路由到该分组下的所有账号。

第 3 步:客户在你侧 SaaS 提交一篇文章 → 你转发给颜小二

你的产品对客户暴露的是你自家的 API(或前端表单),背后再调颜小二。请求体的关键字段:

``json { "external_id": "client_42_article_19283", "group_code": "brand_a_default", "title": "你客户的文章标题", "content_html": "<p>正文</p>", "cover_url": "https://yourcdn.com/cover.jpg", "summary": "摘要", "tags": ["AI"], "category": "科技", "target_platforms": ["toutiao", "wechat_mp", "baijiahao", "zhihu"], "callback_url": "https://api.your-saas.com/yanxiaoer/cb/t_42" } ``

注意 external_id 一定要带租户标识(如 client_42_*),否则跨租户冲突时调试会很痛苦。

第 4 步:在统一回调入口按租户分发

颜小二会把任务回调推到你 callback_url。你侧的 handler 第一步是按 URL 里的 tenant_id 找到对应客户,第二步再按 external_id 找到具体任务。这样一个回调入口就能服务所有租户,不需要每个客户开一条线。

第 5 步:白标外观(可选)

如果你做的是白标 SaaS,账号扫码登录页也要长得像你自家产品。颜小二支持把本地 Agent 的管理控制台嵌入你的产品域名,配色、Logo、文案都可换。

详细可看 [产品功能 / 白标](/product.html)。

第 6 步:按租户切计费维度

最后是商业逻辑。建议按"租户 × 月发布成功量"作为计费切片:

  • 拉颜小二回调里 status: success 的任务数
  • tenant_id 聚合
  • 月底跑出账单

如果做按平台分级计费,把 target_platforms 命中的平台数也纳入维度。

统一控制台与多租户视图

颜小二的差异化卖点

颜小二的核心定位是多租户内容分发执行中台

  • 统一文章接收 API:一个端点承接所有上游系统(你的 SaaS、客户的 CMS、Agent 工作流)
  • 租户级隔离:tenant_id / API Key / callback_url 全部独立,租户间数据零交叉
  • 登录态本地保存:cookie 不上云,每个租户的账号资产权属清晰
  • external_id 幂等:重发同 ID 不会发两次,调用方不用自己写去重

这一套组合拳让你不用自己造"多租户中间件",直接拿来用。

多租户隔离与计费切片

错误排查清单

| 现象 | 常见原因 | 处理方式 | |---|---|---| | 跨租户任务串了 | external_id 没带 tenant 标识 | 命名加前缀 t{tenant_id}_* | | 某客户任务全部失败 | 该租户 API Key 过期 / 错误 | 后台重生 Key,重新写入加密存储 | | 计费对不上 | callback 漏接 / 重试时漏入账 | 跑对账脚本,按 external_id 比对 | | 新客户开通慢 | 手工开租户流程没自动化 | 用颜小二的租户管理 API 做自动化 | | 客户怀疑账号被乱用 | 没向客户证明 cookie 本地 | 让客户看本地 Agent 的数据目录 |

常见问题(FAQ)

Q:颜小二一个租户最多能挂多少账号? 没有硬上限,经验上一个租户 100-300 个账号是常见规模。再大一般会按业务再切租户。

Q:客户能不能直接看到颜小二品牌? 不会。在白标模式下,客户面对的是你的 SaaS,颜小二做底层不露出。

Q:租户间数据怎么保证不互相看到? 租户级数据隔离是数据库层的硬隔离,加 API Key 鉴权双重保障。租户 A 的 token 调任何接口,永远拿不到租户 B 的数据。

Q:如果某个客户违规发布,会牵连其他客户吗? 不会。账号资产、IP 出口、登录态全部独立,平台风控针对的是"账号"和"IP",租户间互不传染。

Q:多租户系统接入要多久? 经验上 1-2 个工程师周可以跑通最小可行版本。详细看 [API 文档](/docs.html)。

下一步

把"内容分发"做成可售卖的多租户产品,是 B2B 内容营销公司的下一阶段。先用 1 个真实客户做 PoC,验证开通-分组-发布-回调-计费全链路,再批量上线。

→ [免费申请接入](/contact.html#form) | [查看 API 文档](/docs.html) | [自媒体发布 API 落地页](/lp/zimedia-publish-api.html)