发送媒体消息

使用 messages 节点向您的客户发送包含音频、文档、图片、贴图或视频的消息。

本质上,当发送包含媒体的消息时,您必须在请求正文中提供所上传媒体的编号或该媒体的链接。您还必须指定要发送的媒体类型,比如 audiodocumentimagestickervideo。收到请求后,系统会将媒体文件上传至 WhatsApp 服务器,并将其发送给 to 字段中指定的用户。

目前有两种通过 WhatsApp Business API 发送媒体消息的方法:

  • 编号 — 如要使用编号,您必须先使用 media 节点上传媒体文件,以获取 messages API 调用所需的编号。
  • 链接 — 如要使用链接,您需要提供一个 HTTP(S) 链接以供应用程序下载媒体文件,这样您就不必自行上传媒体文件。

准备工作

您需要:

第 1 步:向 /messages 发出 POST 请求

上传媒体文件后,将返回的编号填入发送媒体消息的 API 调用中的 id 字段。此外,您还可以提供一个指向要发送的媒体文件的 link 参数(目前仅支持 HTTP/HTTPS 链接)。

需提供 idlink,但不应同时使用二者。

示例

下方示例展示了多个不同对象,例如 audiodocumentimagestickervideo,仅供说明之用。一个有效的请求正文仅包含其中一种对象。

POST /v1/messages
{
  "recipient_type": "individual",
  "to": "whatsapp-id",
  "type": "audio" | "contact" | "document" | "image" | "location" | "sticker" | "text" | "video",
  
  "audio": {
    "id": "your-media-id"
  }
  
  "document": {
    "id": "your-media-id",
    "filename": "your-document-filename"
  }
  
  "document": {
    "link": "the-provider-name/protocol://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "document": {
    "link": "http(s)://the-url.pdf"
  }
  
  "video": {
    "id": "your-media-id"  
  }
  
  "image": {
    "link": "http(s)://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "image": {
    "id": "your-media-id"   
  }
  
  "sticker": {
    "id": "your-media-id"
  }
  
  "sticker": {
    "link": "http(s)://the-url",
    "provider": {
      "name" : "provider-name"
    }
  }
}

如需了解有关参数的更多信息,请参阅以下文档:

第 2 步:检查响应

成功的响应包含带有消息编号的 messages 对象。

{
  "messages": [{
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  }]
}  

在响应失败的情况下,即使响应将生成与消息发送成功类似的消息编号,系统也会向您的 Webhooks 网址发送回调。因此,设置 Webhooks 服务器非常重要。

如需获取关于错误的更多信息,请参阅错误和状态代码