本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
上傳媒體檔案以使用 WhatsApp 傳送
當您傳送或接收媒體檔案時,它必須存放在 Amazon S3 儲存貯體中,並從 WhatsApp 上傳或擷取。Amazon S3 儲存貯體必須與 WhatsApp 商業帳戶 AWS 區域 (WABA) 位於相同的 AWS 帳戶 和 。這些指示說明如何建立 Amazon S3 儲存貯體、上傳檔案,以及建置檔案的 URL。如需 Amazon S3 命令的詳細資訊,請參閱搭配 AWS CLI 使用高階 (s3) 命令。如需設定 的詳細資訊 AWS CLI,請參閱AWS Command Line Interface 《 使用者指南》中的設定 AWS CLI,以及《Amazon S3 使用者指南》中的建立儲存貯體和上傳物件。
注意
WhatsApp 在刪除媒體檔案之前存放媒體檔案 30 天,請參閱 WhatsApp Business Platform Cloud API 參考中的上傳媒體
您也可以建立媒體檔案的預先簽章 URL。使用預先簽章的 URL,您可以授予物件的時間限制存取,並上傳物件,而不需要其他方擁有 AWS 安全登入資料或許可。
若要建立 Amazon S3 儲存貯體,請使用 create-bucket
AWS CLI 命令。在命令列中輸入以下命令: aws s3api create-bucket --region 'us-east-1' --bucketBucketName在上述命令中:
-
將
us-east-1取代 AWS 區域 為您的 WABA 所在的 。 將
BucketName取代為新儲存貯體的名稱。
-
若要將檔案複製到 Amazon S3 儲存貯體,請使用 cp AWS CLI 命令。在命令列中輸入以下命令:
aws s3 cpSourceFilePathAndNames3://BucketName/FileName在上述命令中:
將
SourceFilePathAndName取代為要複製的檔案路徑和檔案名稱。將
BucketName取代為儲存貯體的名稱。將
FileName取代為 檔案要使用的名稱。
傳送時使用的 url 為:
s3://BucketName/FileName若要建立預先簽章的 URL,請以您自己的資訊取代
使用者輸入預留位置。aws s3 presign s3://amzn-s3-demo-bucket1/mydoc.txt--expires-in604800--regionaf-south-1--endpoint-urlhttps://s3.af-south-1.amazonaws.com傳回的 URL 將為:
https://amzn-s3-demo-bucket1.s3.af-south-1.amazonaws.com/mydoc.txt?{Headers}使用 post-WhatsApp-message-media 命令將媒體檔案上傳至 WhatsApp。 post-whatsapp-message-media 成功完成時,命令會傳回
{MEDIA_ID},這是傳送媒體訊息的必要項目。aws socialmessaging post-whatsapp-message-media --origination-phone-number-id{ORIGINATION_PHONE_NUMBER_ID}--source-s3-file bucketName={BUCKET},key={MEDIA_FILE}針對上述命令執行以下事項:
-
將
{ORIGINATION_PHONE_NUMBER_ID}取代為您的電話號碼 ID。 -
將
{BUCKET}取代為 Amazon S3 儲存貯體的名稱。 -
以媒體檔案名稱取代
{MEDIA_FILE}。
您也可以使用
--source-s3-presigned-url而非 來使用預先簽章 URL 上傳--source-s3-file。您必須在headersContent-Type欄位中新增 。如果您同時使用兩者,InvalidParameterException則會傳回 。--source-s3-presigned-url headers={"Name":"Value"},url=https://BUCKET.s3.REGION/MEDIA_FILE-
成功完成時,會傳回
MEDIA_ID。MEDIA_ID用於在傳送媒體訊息時參考媒體檔案。