/v1/media
メディアのアップロード、取得、削除を行うには、media
ノードを使用します。
このノードには次のエッジが接続されています。
エッジ | 説明 |
---|---|
メディアを取得および削除するにはこのエッジを使います。 |
メディアメッセージが送信されると、メディアはWhatsAppサーバーに14日間保存されます。14日を過ぎてからユーザーがメディアのダウンロードをリクエストした場合、WhatsAppサーバーは、同じメディアファイルをWhatsApp Businessオンプレミスクライアントにリクエストします。メディアが削除されている場合、そのメディアを利用できないことがユーザーに通知されます。
配信と読み取りの受信通知のみに基づいてメディアがダウンロードされたと想定するのは危険です。一般的には、送信から30日経過したメディアは削除しても安全ですが、ビジネスに最適な戦略を取るようにしてください。
media
ノードにアップロードできるメディアの最大ファイルサイズは100MBですが、下記の加工後のメディアサイズの表に示されているように、各種のメディアタイプに対して加工後の制限があります。メディアをアップロードするには、/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" } ] }
エラーメッセージを受け取った場合は、エラーおよびステータスメッセージで詳細を確認してください。
メディア | サポートされるコンテンツタイプ |
---|---|
|
注: ogg/opusの場合、WAのクライアントでサポートされるのは、シングルチャンネルのオーディオファイルだけです。 |
| 任意の有効なMIMEタイプ。 |
|
現在のところ、背景が透明の画像はサポートされていません。 |
|
|
|
注:
|
これは、圧縮と暗号化をした後のメディアファイルのサイズとして可能な最大値です。
メディアタイプ | サイズ |
---|---|
| 16MB |
| 100MB |
| 5MB |
| 100KB |
| 16MB |
画像には、説明としてキャプションが追加されます。AndroidとiPhoneのどちらの画像も、キャプションテキストは実際の長さで表示されます。
ドキュメントの場合、キャプションはファイル名に置き換わります。これは、ユーザーのデバイスに説明テキストとして表示されることを意図しておらず、代わりにファイルの名前を示しています。iPhoneの場合は実際のテキストの長さで表示されますが、Androidはファイル名が短縮されて表示されます。これは、両方のデバイス上のWhatsAppにおける現在の実装の技術的な制限です。
メディアの削除のタイミングは各ビジネス次第です。
メディアをアップロードするとメディアIDを受け取りますが、これを使用してアップロードしたメディア要素を含むメッセージを送信することができます。メディアメッセージを送信すると、WhatsApp Business APIがメディアを暗号化してから WhatsAppサーバーにアップロードし、メディアはそこに14日間保持されます。その後、各ビジネスはメディアIDを指定してメディアを削除するか、後の使用のために保持するかを判断できます。メディアを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つの画像を連続して送信する必要があります。画像の受信時点でユーザーのスレッドビューがアクティブになっていると、次回のアクセスまでアルバムビューは利用できません。
次のいずれかの条件に該当する場合、アルバムは作成されません。
いいえ。現在のところ、CoreappとWebappの間でメディアボリュームを共有するには、AWS EFSを使用する必要があります。
最大ファイルアップロードサイズは64MBです。この制限はメッセージで送信される画像、ドキュメント、ビデオにも適用されます。