• 作者: Anonymous
  • 7 分钟阅读

auth_mode qrcode 提供商:消息账户的二维码认证

了解 auth_mode qrcode 提供商在消息 API 中的工作方式:账户创建、二维码启动与检查轮询、Webhook 优先设置、签名验证以及提供商差异。

auth_mode qrcode 提供商:消息账户的二维码认证如何工作

当你通过 API 连接消息渠道时,最难的部分往往不是发送消息,而是证明你控制该账户。auth_mode: "qrcode" 是告诉消息平台通过让账户所有者扫描二维码来认证账户的设置,通常是在提供商自己的移动应用中扫描。本文解释基于二维码的提供商如何运作、设置顺序是什么样的、实现差异在哪里,以及如何围绕产生的事件构建可靠的接收器。

auth_mode qrcode 的含义

auth_mode qrcode 提供商:消息账户的二维码认证 - auth_mode qrcode 的含义

auth_mode qrcode 提供商:消息账户的二维码认证 - auth_mode qrcode 的含义.

在消息 API 中,账户代表一个已连接渠道的登录。auth_mode 字段声明该登录如何被授权。常见值包括二维码、验证码、会话导入和 Passkey。当 auth_mode 为 qrcode 时,平台生成二维码材料,账户所有者在提供商应用中扫描它,平台记录授权结果。

这是一个连接流程,不是最终用户登录流程。它授权一个消息账户,以便平台可以代表其发送和接收消息。它不同于 OAuth 或 OpenID Connect 应用登录流程,后者授予对用户个人资料或数据的范围访问权限。如果你的目标是接收来自现有收件箱的直接消息,二维码授权通常是相关路径;如果你的目标是使用提供商的官方业务 API,你可能需要该提供商自己的应用注册和审核流程。

哪些提供商使用二维码认证

基于二维码的授权在主要客户端是移动应用且账户与手机或设备会话绑定的渠道上很常见。在 UnifyPort 这样的统一消息平台中,TikTok、WhatsApp 和类似的消费者优先渠道使用标准二维码账户流程,而其他渠道可能使用验证码、会话材料或 Passkey。确切的组合取决于提供商并且可能变化,因此请始终根据你正在连接的渠道的提供商指南进行确认。

一个有用的区分是官方业务 API和二维码认证的收件箱连接之间。官方业务 API 围绕业务账户、应用审核和平台原生功能构建。二维码认证的收件箱连接一个已经接收客户消息的账户,并将其入站事件路由到你自己的系统。两者可以共存,但它们是具有不同访问要求的集成表面。

标准二维码授权序列

大多数二维码流程遵循相同的五个步骤。以下名称与 UnifyPort 账户 API 匹配,但模式在各平台间大致相似。

  1. 创建账户,将 provider 设置为渠道,将 auth_mode 设置为 "qrcode"。保留返回的账户 ID。
  2. 启动二维码授权,使用 POST /v1/accounts/{account_id}/auth/qr/start。
  3. 轮询二维码状态,使用 POST /v1/accounts/{account_id}/auth/qr/check 或 GET /v1/accounts/{account_id}/auth,直到报告二维码材料、成功或失败。
  4. 向账户所有者显示二维码,其在提供商应用中扫描并批准。
  5. 确认授权,通过观察认证和运行时事件,然后发送测试消息并验证入站事件到达。

为什么轮询是设计的一部分

一些提供商在启动响应中立即返回二维码材料。其他则不。TikTok 是一个有文档记录的示例:初始启动响应可能不包含二维码 URL,因此检查步骤不是错误处理器,而是流程的必要部分。构建你的 UI 将轮询视为正常,具有清晰的待处理状态、超时和重试路径。不要假设第一个响应包含可扫描的内容。

在二维码屏幕之前创建 Webhook

更安全的顺序是在开始授权之前注册你的 Webhook 端点。授权进度和后续入站消息都作为事件传递,因此先存在的端点从开始就给你一个持久的记录。一个典型的账户创建请求如下所示:

{
  "name": "TikTok Support Inbox",
  "provider": "tiktok",
  "region": "global",
  "status": "active",
  "auth_mode": "qrcode",
  "capabilities": ["receive_message"],
  "metadata": { "workflow": "support-intake" }
}

然后使用空主体启动二维码流程,并轮询检查端点,直到响应携带可渲染的二维码材料或终止状态。

安全处理二维码事件和入站消息

一旦账户被授权,入站消息作为签名 Webhook 传递到达。两个实践比其他任何都重要:

  • 在解析之前验证签名。 UnifyPort 传递包含 X-Device-Timestamp 和 X-Device-Signature;签名是对时间戳、一个点和原始请求体的 HMAC-SHA256。针对原始体验证,而不是重新序列化的 JSON 对象。
  • 先存储,后路由。 持久化事件,然后运行分类、CRM 丰富或人工分配。只有在事件被持久接受后才返回 2xx。

一个规范化的 message.received 事件携带一致的信封:id、type、provider、account_id、occurred_at 和包含对话、发送者和消息详情的 data。这种一致性是统一 API 的主要回报:同一个处理器可以处理 TikTok、WhatsApp、LINE、Zalo、Telegram 和 X 事件,而无需按渠道解析。要深入了解这如何融入支持栈,请参阅使用 UnifyPort 与 Chatwoot的指南。

比较二维码认证与其他认证模式

认证模式 工作原理 最适合 主要权衡
二维码 账户所有者在提供商应用中扫描代码 与移动会话绑定的消费者消息渠道 需要有人持有设备;二维码材料可能需要轮询
验证码 向账户所有者发送代码并在你的 UI 中输入 支持基于代码登录的渠道 取决于代码传递和过期处理
会话导入 向平台提供现有会话材料 迁移已授权的会话 会话材料敏感且会过期
Passkey WebAuthn 凭证授权账户 支持无密码认证的平台 需要兼容的认证器和注册

当账户已存在于提供商应用中且有人可以完成一次扫描时,选择二维码授权。当你需要平台原生业务功能、活动归因或程序级保证时,选择官方业务 API。要更广泛地比较消息平台及其渠道覆盖,请参阅UnifyPort vs Linq vs Sinch。

需要规划的操作陷阱

  • 重新认证。 会话会过期或被撤销。为过期授权设计 UI 状态和重启二维码流程的路径。
  • 至少一次传递。 Webhook 可以重试。使用事件 ID 作为幂等键,以便重复传递不会创建重复工单。
  • 敏感材料。 将二维码负载、会话数据和签名密钥视为秘密。不要记录它们或将生产账户 ID 粘贴到共享渠道中。
  • 提供商差异。 支持和可用性可能因账户和地区而异。清晰地呈现认证失败,而不是静默重试。
  • 范围混淆。 不要将消息账户二维码流程与提供商的官方应用登录二维码流程混淆。它们授权不同的事物。

相关阅读

来源与进一步阅读

常见问题

在消息 API 中 auth_mode qrcode 是什么意思?

它声明账户通过其所有者扫描二维码来授权,通常在提供商的移动应用中。平台生成二维码材料并记录授权结果。

哪些提供商使用二维码认证?

二维码授权在 TikTok 和 WhatsApp 等消费者优先渠道上很常见。其他渠道可能使用验证码、会话材料或 Passkey。检查你正在连接的渠道的提供商指南。

为什么二维码启动响应有时不包含二维码 URL?

一些提供商异步返回二维码材料。TikTok 提供商指南指出初始启动响应可能不包含二维码 URL,因此你必须轮询二维码检查端点,直到材料或终止状态出现。

二维码认证连接需要开发者应用吗?

对于二维码账户流程本身不需要。连接使用平台的账户和二维码授权端点。如果你需要提供商的官方应用登录范围或业务 API,那是单独的集成路径。

我应该如何验证二维码 Webhook 传递?

使用你的端点签名密钥验证对时间戳和原始请求体的 HMAC-SHA256 签名,然后在路由之前存储事件。只有在持久接受后才返回 2xx。

结论

auth_mode: "qrcode" 是一个小字段,但具有大的操作足迹。将二维码授权视为具有轮询、超时和重新认证的状态机,在显示二维码屏幕之前注册你的 Webhook,并针对原始体验证每次传递。如果你连接多个渠道,统一事件契约将二维码特定细节保持在边缘,并让你的路由逻辑在提供商之间保持一致。对于权衡平台选项的团队,顶级 CPaaS 产品比较和AI 客户体验平台评论提供了有用的决策背景。