傳送媒體訊息

使用 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"
  }]
}  

如果回應不成功,即使回應將產生類似成功傳送訊息的訊息編號,系統仍會將回呼傳送到 Webhook 網址。因此,設定 Webhook 伺服器非常重要。

如需有關錯誤的詳細資訊,請參閱錯誤和狀態代碼