File phương tiện

/v1/media

Sử dụng nút media để tải lên, truy xuất hoặc xóa file phương tiện.

Cạnh

Dưới đây là những cạnh được kết nối với nút này:

CạnhMô tả

/{media-id}

Sử dụng cạnh này để truy xuất và xóa file phương tiện.

Trước khi bạn bắt đầu

Khi bạn gửi một tin nhắn có file phương tiện, file phương tiện đó sẽ được lưu trữ trên máy chủ WhatsApp trong 14 ngày. Nếu người dùng gửi yêu cầu tải file phương tiện xuống sau 14 ngày, máy chủ WhatsApp sẽ yêu cầu ứng dụng WhatsApp Business tại chỗ cung cấp chính file phương tiện đó. Nếu file phương tiện đã bị gỡ, người dùng sẽ nhận được thông báo rằng file phương tiện này không tồn tại.

Thật không an toàn khi cho rằng file phương tiện đã được tải xuống chỉ dựa trên thông báo đã gửi và đã đọc. Thông thường, bạn có thể gỡ file phương tiện gửi đi sau 30 ngày. Tuy nhiên, bạn nên triển khai chiến lược phù hợp nhất với doanh nghiệp của mình.

Giới hạn

  • Nếu sử dụng quy trình tải file phương tiện lên thay vì liên kết đến URL file phương tiện, bạn phải tải file lên ổ đĩa file phương tiện. Sau khi quá trình tải lên hoàn tất, bạn có thể gửi tin nhắn bằng ID file phương tiện.
  • Ứng dụng sẽ xử lý file phương tiện được tải lên rồi mới gửi file đó đến máy chủ. Mặc dù kích thước file phương tiện tối đa mà bạn có thể tải lên nút media100MB, nhưng các loại file phương tiện khác nhau sẽ có những giới hạn sau khi xử lý như nêu trong bảng Kích thước file phương tiện sau khi xử lý ở bên dưới.
  • Doanh nghiệp cần xử lý bộ nhớ file phương tiện. Nếu ổ đĩa file phương tiện đầy, quy trình gửi tin nhắn sẽ bắt đầu bị lỗi.
  • Chúng tôi chưa hỗ trợ:
    • Gửi file phương tiện theo luồng byte.
    • Gửi tin nhắn có nhãn dán động.

Tải lên

Gửi yêu cầu POST đến /v1/media để tải file phương tiện của bạn lên. Bạn phải thêm dữ liệu nhị phân của file phương tiện này vào phần nội dung của yêu cầu tại chỗ và đặt tiêu đề Content-Type thành loại file phương tiện mà bạn đang tải lên. Hãy xem phần Loại nội dung được hỗ trợ để biết các tùy chọn được hỗ trợ.

Cách tiêu chuẩn để tải dữ liệu nhị phân lên là gửi loại dữ liệu này trong yêu cầu POST HTTP. Ví dụ: nếu bạn muốn tải một hình ảnh lên, hãy gửi yêu cầu POST cùng với số byte thực tế của hình ảnh đó trong phần tải dữ liệu. Ngoài ra, bạn có thể sử dụng --data-binary nếu muốn cURL đọc và dùng chính file ở dạng nhị phân đã cung cấp.

Ví dụ

Tải file phương tiện lên:

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

your-binary-media-data

Tải file phương tiện lên thông qua 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

Trong cả hai trường hợp, phản hồi thành công sẽ trả về trường id. Bạn cần trường này để truy xuất file phương tiện hoặc gửi tin nhắn có file phương tiện cho khách hàng của mình.

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

Nếu bạn nhận được thông báo lỗi, hãy xem phần Thông báo lỗi và thông báo trạng thái để biết thêm thông tin.

Loại nội dung được hỗ trợ

File phương tiện Loại nội dung được hỗ trợ

audio

audio/aac, audio/mp4, audio/amr, audio/mpeg,
audio/ogg; codecs=opus


Lưu ý: Đối với ogg/opus, ứng dụng WA chỉ hỗ trợ các file âm thanh một kênh.

document

Mọi loại MIME hợp lệ.

image

image/jpeg, image/png


Hiện tại, chúng tôi không hỗ trợ hình ảnh có phông nền trong suốt.

sticker

image/webp

video

video/mp4, video/3gpp


Lưu ý:

  • Chỉ hỗ trợ codec video H.264 và codec âm thanh AAC.
  • Chúng tôi hỗ trợ những video không có hoặc có một luồng âm thanh.

Kích thước file phương tiện sau khi xử lý

Đây là kích thước tối đa cho phép của file phương tiện sau khi nén và mã hóa.

Loại file phương tiện Kích thước

audio

16MB

document

100MB

image

5MB

sticker

100KB

video

16MB

Câu hỏi thường gặp

Đối với hình ảnh, chú thích sẽ được thêm dưới dạng nội dung mô tả. Văn bản chú thích cho hình ảnh hiển thị ở độ dài đầy đủ trên cả Android lẫn iPhone.

Đối với tài liệu, chú thích sẽ thay thế tên file. Điều này không có nghĩa là chú thích hiển thị trên thiết bị của người dùng dưới dạng văn bản mô tả, mà thay vào đó là hiển thị tên của file. iPhone hiển thị văn bản đầy đủ trong khi Android cắt bớt tên file; đây là giới hạn kỹ thuật của quá trình triển khai WhatsApp trên cả hai thiết bị vào thời điểm hiện tại.

Bạn có quyền quyết định thời điểm xóa file phương tiện.

Sau khi tải file phương tiện lên, bạn sẽ nhận được ID file phương tiện. Bạn có thể dùng ID này để gửi tin nhắn bao gồm thành phần file phương tiện đã được tải lên. Sau khi gửi tin nhắn phương tiện, API WhatsApp Business sẽ mã hóa và tải file phương tiện lên máy chủ WhatsApp. Tại đây, file sẽ được lưu giữ trong 14 ngày. Sau đó, bạn có thể quyết định xóa file phương tiện bằng cách cung cấp ID file phương tiện hoặc giữ lại để sử dụng sau này. Mặc dù nên giữ file phương tiện trong 30 ngày, nhưng bạn có quyền quyết định chính sách lưu giữ theo chính sách hoặc trường hợp sử dụng của doanh nghiệp mình.

Không có cơ chế xóa đối với file phương tiện đến hoặc đi. Bạn có thể tìm file phương tiện trên hệ thống file để xóa theo cách thủ công.

Để tìm điểm gắn kết của ổ đĩa phương tiện, bạn có thể chạy lệnh docker.

Yêu cầu

docker volume inspect whatsappMedia

Phản hồi

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

Sau đó, để xem tất cả các file phương tiện đến, bạn có thể chạy lệnh ls với đường dẫn file Mountpoint nhận được:

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

Đối với quá trình thiết lập AWS, ổ đĩa phương tiện được gắn vào đường dẫn /mnt/wa/media trên máy chủ.

Khi gửi hình ảnh dưới dạng album từ API WhatsApp Business, bạn cần gửi tối thiểu 4 hình ảnh liên tiếp. Nếu chế độ xem cuộc trò chuyện của người dùng đang hoạt động khi họ nhận được hình ảnh, bạn sẽ không dùng được chế độ xem album cho tới lần truy cập tiếp theo.

Bạn sẽ không tạo được album trong bất kỳ trường hợp nào sau đây:

  1. Hình ảnh có chú thích
  2. Công cụ phân chia tin nhắn chưa đọc - người dùng sẽ nhìn thấy một số hình ảnh nhưng không nhìn thấy phần còn lại
  3. Tiêu đề ngày - ngày mới giữa những lần gửi

Không, hiện tại chúng tôi phải sử dụng AWS EFS để chia sẻ phần dữ liệu file phương tiện giữa Coreapp và Webapp.

Kích thước tải lên file tối đa là 64 MB, nghĩa là giới hạn này cũng áp dụng cho bất kỳ hình ảnh, tài liệu hoặc video nào mà bạn gửi kèm tin nhắn.