mcpField
W
waba-embedded-signup

waba-embedded-signup

github.com/sentdm开发492.9k 次安装1 周前更新
代码仓库

关于 waba-embedded-signup

此技能面向将 WhatsApp Business Account 入驻流程接入 Sent 的团队。它区分组织仪表板注册、继承 WABA 的资料和专用 WABA 凭据,并说明认证、令牌保护、完成回调及就绪检查。

主要功能

  1. 01区分三种 WABA 入驻路径
  2. 02配置继承或专用 WABA
  3. 03使用资料级或组织级认证
  4. 04保护 WABA 访问令牌
  5. 05处理完成回调与就绪检查

适用场景

  1. 01在 Sent 仪表板连接组织 WABA
  2. 02创建继承 WABA 的子资料
  3. 03使用专用 WABA 凭据配置资料
  4. 04排查资料访问或完成问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sentdm/sent-plugin --skill waba-embedded-signup

安装后在 Claude Code 中输入/waba-embedded-signup确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
waba-embedded-signup-spec.md
waba-onboarding-runbook.md
whatsapp-sender-profile-mapping.md

详细介绍

WABA 入驻和嵌入式注册

请区分三种集成路径。把它们都称为“嵌入式注册”会导致错误的 API 设计和不安全的凭据处理。

三种路径

路径起始位置配置文件行为
组织嵌入式注册Sent 控制面板通过 Meta 托管流程连接组织的 WABA。Sent 没有用于启动此流程的公开端点。
组织 WABA 继承POST /v3/profiles省略 whatsapp_business_account;子级会继承组织已连接的 WABA。
子配置文件专用 WABAPOST /v3/profiles提供 whatsapp_business_account.waba_id 和 .access_token;phone_number_id 为可选项。

如果省略凭据且组织没有已连接的 WABA,创建配置文件会返回 422。直接提供 WABA 凭据是配置文件创建功能,不是公开的“嵌入式注册端点”。

身份验证

使用以下任一方式:

  • 在 x-api-key 中使用配置文件专属密钥;或
  • 在 x-api-key 中使用组织密钥,并在为现有子配置文件操作时提供 x-profile-id。

只有组织密钥可以使用 x-profile-id;配置文件密钥会收到 403。x-sender-id 是 v1/v2 中使用的旧术语。

路径 A:组织嵌入式注册

  1. 获授权的组织管理员打开 Sent 控制面板中的 WhatsApp 连接流程。
  2. 托管的 Meta 嵌入式注册界面会收集 Meta 授权信息以及 WABA/号码选项。
  3. 创建继承组织 WABA 的子配置文件之前,确认组织显示已连接 WABA。
  4. 记录非机密标识符,并审计完成操作的人员。

不要在 Sent 的公开 API 中虚构 POST /embedded-signup 或令牌交换端点。如果要在 Sent 控制面板之外构建自己的 Meta 技术服务提供商集成,请遵循 Meta 当前的文档,并将该系统与 Sent API 契约分开。

Meta 浏览器 postMessage 事件使用 event 字段以及嵌套的数据/会话信息。不要将它们改写为 Sent webhook 的 sub_type 信封。

路径 B:继承组织 WABA

省略 whatsapp_business_account:

{
  "name": "Tenant Support",
  "description": "Synthetic child profile",
  "short_name": "SUPPORT",
  "inherit_templates": true,
  "billing_model": "organization",
  "sandbox": true
}

仅在组织 WABA 已连接后使用此方式。继承意味着租户共享该 WABA 边界;请确认这与租户/品牌架构相符。

路径 C:专用 WABA 凭据

{
  "name": "Dedicated Tenant",
  "whatsapp_business_account": {
    "waba_id": "123456789012345",
    "phone_number_id": "987654321098765",
    "access_token": "<injected secret>"
  },
  "sandbox": true
}

waba_id 和 access_token 为必填项。phone_number_id 为可选项:省略时,当前契约描述了入驻期间的配置和注册流程。

令牌需要具备适用的 WhatsApp Business 消息发送和管理权限。请从密钥管理器注入令牌。切勿记录令牌、回显令牌、将其写入测试固件、返回给浏览器、包含在支持输出中,或将其保留在通用配置文件存储中。Sent 不会在 API 响应中返回令牌。

完成配置文件

使用必需的 webHookUrl 调用 POST /v3/profiles/{profileId}/complete:

{
  "webHookUrl": "https://example.com/webhooks/profile-complete",
  "sandbox": true
}
  • 202 表示后台处理已启动;该响应中没有最终状态。
  • 200 可能表示配置文件已完成,并且当前示例使用小写的 completed。
  • 完成回调可能报告 COMPLETED、SUBMITTED 或 failed。

请将完成回调视为独立的集成接口。其信封使用 event,而非 sub_type:

{
  "event": "COMPLETED",
  "profile_id": "00000000-0000-0000-0000-000000000000",
  "timestamp": "2026-08-09T12:00:00Z"
}

保留未知的事件字符串。使用 Sent 为回调端点指定的机制验证真实性,并确保处理具有幂等性。

验证运行就绪状态

  • Profile WABA ID 与预期业务一致。
  • 所选号码映射到预期 Profile。
  • 模板共享/继承方式符合预期。
  • 可以使用 sandbox: true 创建测试模板。
  • 完成回调可访问且具备幂等性。
  • 返回的消息 ID 会在 Webhook 处理前,按租户/Profile 存储。
  • 日志中不包含令牌和付款值。

对于普通消息和模板 Webhook,请遵循 Sent 当前的事件参考文档;这些事件与 Meta 浏览器事件和 Profile 完成回调彼此独立。

故障路由

故障后续操作
未提供凭据时出现 422连接组织 WABA,或提供专用凭据。
使用 Profile 密钥和 x-profile-id 时出现 403移除 x-profile-id,或使用已授权的组织密钥。
WABA/号码错误在完成前停止操作,并修正 Profile 映射。
令牌已过期/权限范围不足安全地替换令牌;排查问题时切勿打印令牌。
完成状态仍为已提交检查前置条件和回调证据;不要仅凭 202 就认定最终失败。

请使用 references/waba-embedded-signup-spec.md、references/waba-onboarding-runbook.md 和 references/whatsapp-sender-profile-mapping.md。使用 sender-profile-architect 处理租户边界,使用 waba-template-author 创建第一个模板。

评论

支持 Markdown