快速开始
快速上手:在 WhatsApp 发出第一条消息
连接一个 WhatsApp 消息账号,发送文本消息,并通过 Webhook 接收回复。本指南使用号码配对方式。
上手步骤
- 1
准备好你的 API Key
准备工作区 API Key、WhatsApp 账号和可接收公网 HTTPS 请求的 Webhook 地址。API Key 与签名密钥保存在服务端。先用下面的请求检查 API Key。
获取当前工作区curl "https://api.unifyport.ai/v1/workspace" \ -H "X-Api-Key: <YOUR_API_KEY>" - 2
注册一个 webhook 端点
务必先做这一步:授权进度与实时入站消息通过 webhook 到达,漏掉的投递不保证重放。用 ["*"] 可订阅全部公开标准事件;WhatsApp HistorySync 只提供有限的近期连续性,不是持久历史归档。
创建 Webhook 端点curl -X POST "https://api.unifyport.ai/v1/webhook-endpoints" \ -H "X-Api-Key: <YOUR_API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com/webhook", "status": "active", "subscribed_events": ["*"], "signing_secret": "<WEBHOOK_SIGNING_SECRET>" }' - 3
查询可用区域
账号会绑定到一个区域,而并非每个渠道都覆盖所有区域。先列出该渠道的区域,挑一个 allocatable: true 的——在无法分配的区域创建账号会以 409 no_allocatable_server 失败。
列出渠道区域curl "https://api.unifyport.ai/v1/providers/whatsapp/regions" \ -H "X-Api-Key: <YOUR_API_KEY>" - 4
创建一个 WhatsApp 账号
在选定的可分配区域创建消息账号。WhatsApp 号码配对使用 auth_mode=code,并在 provider_data.phone 填写仅含数字的完整国际号码。将返回的 data.id 保存为 account_id,供后续步骤使用。
创建账号curl -X POST "https://api.unifyport.ai/v1/accounts" \ -H "X-Api-Key: <YOUR_API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "name": "WhatsApp Support", "provider": "whatsapp", "region": "<REGION>", "status": "active", "auth_mode": "code", "provider_data": { "phone": "8600000000000" } }' - 5
配对手机
使用账号已保存的手机号,向 POST /auth/start 发送 {}。将 data.verify_code 展示给用户在手机 WhatsApp 中输入,无需提交到 /auth/code。发送消息前继续检查授权状态和运行态。
开始验证码认证curl -X POST "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/auth/start" \ -H "X-Api-Key: <YOUR_API_KEY>" - 6
确认账号可以发送
使用同一个 account_id 查询 /auth 和账号信息,分别确认授权状态为 authorized、runtime_status 为 running。授权需要操作时继续相应流程;已授权但未在线时检查或刷新运行态。
获取认证状态curl -X GET "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/auth" \ -H "X-Api-Key: <YOUR_API_KEY>" curl -X GET "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>" \ -H "X-Api-Key: <YOUR_API_KEY>" - 7
发送你的第一条消息
使用创建时保存的 account_id。本 WhatsApp 号码示例的收件方为完整国际号码加 @s.whatsapp.net;回复入站消息时复用事件的 data.conversation.id。不要将该号码格式套用到其他渠道。
发送文本消息curl -X POST "https://api.unifyport.ai/v1/messages" \ -H "X-Api-Key: <YOUR_API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "account_id": "<ACCOUNT_ID>", "to": { "id": "8600000000000@s.whatsapp.net", "type": "user" }, "message": { "type": "text", "text": "Hello from UnifyPort" } }' - 8
接收你的第一个事件
从测试收件方回复。接收端验签、保存事件并确认投递。普通事件按事件 ID 去重并兼容乱序;conversation.history 按 provider + account_id + conversation.id + messages[].id 合并消息,不按事件 ID 丢弃整个批次。未收到时检查订阅、接收地址可达性和投递响应。
Webhook 投递与签名校验