如需查看基于 Schema 生成的完整目录,请参阅所有示例。
功能概述
处理 WhatsApp 通话结束、录音以及转录事件。准备工作
- 在您的应用程序中创建一个公开的 HTTPS 端点。
- 为您所需的事件类型配置 YCloud Webhook 端点。
- 安全存储端点签名密钥。
- 确保事件处理具有幂等性。
工作原理
当事件发生时,YCloud 会发送一个 HTTPPOST 请求。请验证签名,持久化记录该事件,返回 2xx 响应,并异步处理耗时操作。
请求
以下场景展示了投递到您 Webhook URL 的请求。请将事件id 作为投递标识符,并使用 type 路由有效载荷。
响应
在成功接收事件后返回2xx 状态。
有关端点设置、签名验证和重试机制,请参阅配置 Webhook。
通话已完成
请求
响应
在持久化接收事件后进行投递确认。说明
通过type 路由事件,通过 id 进行去重,并将耗时或易出错的操作移至异步处理器。
通话失败
请求
响应
在持久化接收事件后进行投递确认。说明
通过type 路由事件,通过 id 进行去重,并将耗时或易出错的操作移至异步处理器。
通话录音可用
对于启用了录音功能的 API 发起通话,whatsapp.call.recording.updated 会报告录音是否可用或是否发生永久性处理失败。
请求
响应
在持久化接收事件后进行投递确认。说明
使用callingRecording.wacid 标识通话,使用 phoneId 标识商业电话号码。仅在 status 为 AVAILABLE 时下载 mediaAssetId。录音处理独立于通话结束结果。对于 FAILED,请检查 error.code 和 error.retryable。请参阅录音与转录。
通话转录失败
对于启用了转录功能的 API 发起通话,whatsapp.call.transcription.updated 会报告转录是否可用或是否发生永久性处理失败。
请求
响应
在持久化接收事件后进行投递确认。说明
请读取callingTranscription 而不是 callingRecording。在此示例中,status 为 FAILED 且 error.retryable 为 false。请勿尝试下载失败的资源。AVAILABLE 结果使用 mediaAssetId 进行下载;转录结果独立于录音结果和通话结束状态。
