미디어

/v1/media

media 노드를 사용하여 미디어를 업로드하거나 검색 또는 삭제합니다.

에지

이 노드와 연결되는 에지는 다음과 같습니다.

에지설명

/{media-id}

이 에지를 사용하여 미디어를 검색 및 삭제합니다.

시작하기 전에

미디어 메시지를 발송하면 미디어는 WhatsApp 서버에 14일간 저장됩니다. 사용자가 14일 후에 미디어 다운로드를 요청하면 WhatsApp 서버가 동일한 미디어 파일을 WhatsApp Business 온프레미스 클라이언트에 요청하게 됩니다. 미디어가 제거되었다면 사용자에게 미디어를 사용할 수 없다고 알립니다.

메시지 전송 또는 확인 여부로 미디어가 다운로드되었다고 섣불리 가정해서는 안 됩니다. 최근 30일 이내의 발송 미디어는 대개 삭제해도 문제가 없지만 비즈니스에 가장 적절한 전략을 적용해야 합니다.

제약 사항

  • 미디어 URL에 링크하는 대신 미디어 업로드 프로세스를 사용할 경우, 파일은 반드시 미디어 볼륨에 업로드해야 합니다. 업로드가 완료되면 미디어 ID를 사용하여 메시지를 보낼 수 있습니다.
  • 애플리케이션은 업로드된 미디어를 서버로 보내기 전에 처리합니다. media 노드에 업로드할 수 있는 미디어의 최대 파일 용량은 100MB이지만 다양한 미디어 유형의 후처리 제한은 아래의 후처리 미디어 용량 표를 참조하세요.
  • 미디어 스토리지는 비즈니스에서 처리해야 합니다. 미디어 볼륨이 가득 차면 메시지 발송이 실패합니다.
  • 다음에 대한 지원은 제공하지 않습니다.
    • 바이트 스트림으로 미디어를 전송할 수 없습니다.
    • 애니메이션 스티커가 적용된 메시지를 전송할 수 없습니다.

업로드

미디어를 업로드하려면 POST 요청을 /v1/media로 보냅니다. 온프레미스 요청 본문에는 바이너리 미디어 데이터를 포함해야 하고 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/aac, audio/mp4, audio/amr, audio/mpeg,
audio/ogg; codecs=opus


참고: ogg/opus의 경우 WA 클라이언트는 단일 채널 오디오 파일만 지원합니다.

document

모든 유효한 MIME 유형입니다.

image

image/jpeg, image/png


현재는 배경이 투명한 이미지를 지원하지 않습니다.

sticker

image/webp

video

video/mp4, video/3gpp


참고:

  • H.264 동영상 코덱과 AAC 오디오 코덱만 지원됩니다.
  • 오디오 스트림이 하나이거나 없는 동영상을 지원합니다.

후처리 미디어 용량

압축 및 암호화 후 미디어 파일에 허용되는 최대 용량입니다.

미디어 유형 크기

audio

16MB

document

100MB

image

5MB

sticker

100KB

video

16MB

FAQ

이미지 캡션은 설명으로 추가됩니다. 캡션 텍스트는 Android와 iPhone의 이미지에서 모두 전체 길이가 표시됩니다.

문서 캡션은 파일 이름을 대체합니다. 사용자 기기에 설명 텍스트로 표시되지 않고 파일 이름으로 표시됩니다. iPhone은 전체 텍스트를 표시하지만 Android는 파일 이름을 자릅니다. 이는 두 기기에서 실행하는 WhatsApp 최신 구현에 적용된 기술적 제한입니다.

미디어 삭제 시점은 귀하가 결정할 수 있습니다.

미디어를 업로드한 후 미디어 ID를 수신하는데, 이 ID를 사용하여 업로드된 미디어 요소를 포함한 메시지를 전송할 수 있습니다. 미디어 메시지를 전송할 때 WhatsApp Business API가 미디어를 암호화하여 WhatsApp 서버에 업로드합니다. 미디어는 서버에 14일간 저장됩니다. 그 이후에는 미디어 ID를 제공하여 미디어를 삭제하거나 보관했다가 나중에 사용할 수 있습니다. 미디어 보관 기간은 30일을 권장하지만 비즈니스 정책이나 사용 사례에 따라 보관 정책을 결정하시기 바랍니다.

발송 또는 수신되는 미디어 파일에 모두 정리 메커니즘이 없습니다. 파일 시스템에서 미디어 파일을 찾아서 직접 삭제할 수 있습니다.

미디어 볼륨의 마운트 지점을 찾으려면 도커 명령을 실행합니다.

요청

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. 날짜 헤더 - 전송 이미지 사이에 새로운 날 포함

아니요, 지금은 Coreapp과 Webapp 사이에서 미디어 볼륨을 공유하려면 AWS EFS를 사용해야 합니다.

최대 파일 업로드 용량은 64MB이며, 이 제한은 메시지에 포함한 모든 이미지, 문서 또는 동영상에도 적용됩니다.