API 参考

渠道说明

WhatsApp Protocol 接入授权

WhatsApp Protocol 是独立渠道,使用 provider=whatsapp-protocol。目前仅支持会话导入(auth_mode=session),通过已有会话凭证完成授权。

上手步骤

  1. 1

    列出渠道区域

    查询 whatsapp-protocol 的可用区域,选择 allocatable=true 的区域。如果没有可分配区域,暂时无法在这些区域创建该渠道账号。

    curl -X GET "https://api.unifyport.ai/v1/providers/whatsapp-protocol/regions" \
      -H "X-Api-Key: <YOUR_API_KEY>"
    列出渠道区域
  2. 2

    创建账号

    使用 provider=whatsapp-protocol、auth_mode=session 创建账号,将 data.id 保存为 account_id。协议凭证仅提交至 /auth/session,不要放入 provider_data。

    curl -X POST "https://api.unifyport.ai/v1/accounts" \
      -H "X-Api-Key: <YOUR_API_KEY>" \
      -H "Content-Type: application/json" \
      -d '{
      "name": "WhatsApp Protocol",
      "provider": "whatsapp-protocol",
      "region": "<REGION>",
      "auth_mode": "session"
    }'
    创建账号
  3. 3

    导入会话

    提交下面的 whatsapp-protocol 对象;本流程必须提供 phone 和四个密钥字段。密钥只写、响应不回显。省略弃用字段,不提交 edge_routing。

    curl -X POST "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/auth/session" \
      -H "X-Api-Key: <YOUR_API_KEY>" \
      -H "Content-Type: application/json" \
      -d '{
      "whatsapp-protocol": {
        "phone": "8600000000000",
        "static_pub_key": "<STATIC_PUBLIC_KEY>",
        "static_pri_key": "<STATIC_PRIVATE_KEY>",
        "identity_pub_key": "<IDENTITY_PUBLIC_KEY>",
        "identity_pri_key": "<IDENTITY_PRIVATE_KEY>"
      }
    }'
    导入会话
  4. 4

    确认账号可以发送

    导入后使用该 account_id 查询授权与运行态。返回 authorized 不等于连接已运行;账号仍离线时,先刷新运行态再尝试发送。

    curl -X GET "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/auth" \
      -H "X-Api-Key: <YOUR_API_KEY>"
    
    curl -X POST "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/runtime/refresh" \
      -H "X-Api-Key: <YOUR_API_KEY>"
    刷新运行时状态

备注

  • 支持 text、image 和联系人详情;不支持引用回复、mentions、联系人列表及写动作、会话或群组操作。事件映射包括文本/图片 message.received、account.started、account.status.updated、account.auth.failed;实际投递仍取决于上游账号。
  • 联系人详情需要已有 LID(xxx@lid)。只有入站事件的 data.sender.id 或 data.conversation.id 已以 @lid 结尾时才能直接复用。Protocol 不提供联系人列表查询,此接口也不能从手机号推算 LID;没有 LID 时无法进行此项查询。成功响应可能缺少资料字段。