媒體

/v1/media

使用 media 節點上載、擷取或刪除影音素材。

關係連線

以下關係連線連接至此節點:

關係連線說明

/{media-id}

使用此關係連線擷取和刪除媒體。

準備工作

傳送媒體訊息時,媒體將在 WhatsApp 伺服器中儲存 14 天。如果用戶在 14 天後要求下載該媒體,則 WhatsApp 伺服器會透過 WhatsApp Business 企業內部用戶端要求相同的媒體檔案。如果媒體已被移除,則系統會通知用戶該媒體無法使用。

您無法單靠已送達和已讀通知,便假設影音素材已下載。一般來說,在 30 天後移除傳出的影音素材會較為安全,但您應該採用最適合您企業的策略。

限制

  • 如果您使用媒體上載程序,而不是連結至媒體網址,則必須將檔案上載至媒體磁碟區。上載完成後,您可以使用媒體編號傳送訊息。
  • 應用程式會先處理已上載媒體,然後才將其傳送至伺服器。上載至 media 節點的媒體檔案大小上限是 100 MB,另外下方的處理後媒體大小表格亦列出了各種媒體類型的處理後大小限制。
  • 媒體儲存空間需由企業處理。如果影音素材磁碟區已滿,您便無法傳送訊息。
  • 不支援:
    • 透過位元組流傳送影音素材。
    • 傳送附有動畫貼圖的訊息。

上載

/v1/media 傳送 POST 要求,以上載媒體。企業內部要求的正文必須包含二進位媒體資料,而且 Content-Type 標題必須設定為所上載媒體的類型。請參閱支援的內容類型部分,以了解支援的選項。

POST HTTP 要求中傳送二進位資料,是上載二進位資料的標準方法。例如,如果您想上載圖片,則可以在承載中加入實際圖片位元,然後發出 POST 要求。或者,如果您希望 cURL 按照既定的二進位形式讀取和使用既定的檔案,則可以使用 --data-binary

範例

上載媒體:

POST /v1/media
Content-Type: image/jpeg or other appropriate media type

your-binary-media-data

使用 cURL 上載媒體:

curl -X POST \
https://your-webapp-hostname:your-webapp-port/v1/media \
-H 'Authorization: Bearer your-auth-token' \ 
-H 'Content-Type: image/jpeg'  \ # or other appropriate media type
--data-binary @your-file-path

在這兩種情況下,成功的回應會傳回 id 欄位,您在擷取媒體或向顧客傳送媒體訊息時將需使用此項資訊。

{
    "media": [
        {
            "id": "f043afd0-f0ae-4b9c-ab3d-696fb4c8cd68"
        }
    ]
}

如果您收到錯誤訊息,請參閱錯誤和狀態訊息,了解詳情。

支援的內容類型

媒體 支援的內容類型

audio

audio/aacaudio/mp4audio/amraudio/mpeg
audio/ogg; codecs=opus


備註:對於 ogg/opus,WhatsApp 用戶端僅支援單一渠道音訊檔案。

document

任何有效 MIME 類型。

image

image/jpegimage/png


目前,我們不支援採用透明背景的圖片。

sticker

image/webp

video

video/mp4video/3gpp


備註:

  • 僅支援 H.264 影片編碼和 AAC 音訊編碼。
  • 支援包含單一音訊串流或不含音訊串流的影片。

處理後的媒體大小

此為媒體檔案經壓縮和加密處理後的大小上限。

媒體類型 大小

audio

16 MB

document

100 MB

image

5 MB

sticker

100 KB

video

16 MB

常見問題

如果是圖片,系統會將說明加入為描述。在 Android 和 iPhone 中,系統均會顯示圖片說明的完整文字。

如果是文件,則說明內容會取代檔案名稱。系統並不會在用戶裝置中將之顯示為描述文字,而是會將之顯示為檔案名稱。iPhone 會顯示全部文字,而 Android 則會截斷檔案名稱,這是由於 WhatsApp 在這兩種裝置中當前安裝方面的技術限制所致。

您可以自行決定何時刪除影音素材。

上載影音素材後,您將收到一個影音素材編號;您可以使用此編號傳送一則包含已上載影音素材的訊息。傳送影音素材訊息後,WhatsApp Business API 便會將影音素材解碼並上載至 WhatsApp 伺服器,且伺服器會將之保留 14 天。之後,您便可以自行決定刪除此影音素材(方法為提供影音素材編號),還是保留它供日後使用。我們建議將影音素材保留 30 天;您可以根據貴公司的政策或使用案例,自行決定具體保留時間。

已傳送及已接收影音素材檔案均未有設立清理機制。您可在檔案系統中找出影音素材檔案,然後將之手動刪除。

如要尋找影音素材磁碟區的掛載點,請運行 Docker 指令。

要求

docker volume inspect whatsappMedia

回應

[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data",
        "Name": "whatsappMedia",
        "Options": {},
        "Scope": "local"
    }
]

然後,如要查看全部已接收影音素材檔案,請使用已收到的 Mountpoint 檔案路徑運行 ls 指令:

ls /var/lib/docker/volumes/whatsappMedia/_data/

若是 AWS 設定,您可將影音素材磁碟區掛載至主機的 /mnt/wa/media 路徑。

使用 WhatsApp Business API 以相簿形式傳送圖像時,您需要最少連續傳送 4 張圖像。如果用戶收到圖像時,其對話視圖處於活躍狀態,則需要等待至下次存取時才能使用相簿視圖。

如果出現以下任何情況,則將無法建立相簿:

  1. 含有說明文字的圖像
  2. 出現未讀分隔符號 - 用戶只查看了部分圖像
  3. 日期標題不一致 - 圖像跨日傳達

沒有辦法,目前我們必須使用 AWS EFS 才能在核心應用程式和網頁應用程式之間分享媒體影音素材磁碟區。

上載檔案大小不能超過 64 MB,而此限制亦適用於與訊息一同傳送的任何圖像、文件或影片。