

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 “ AWS 最终用户消息 Social” 中发送媒体消息的示例
<a name="send-message-media"></a>

以下示例说明如何使用向客户发送媒体消息 AWS CLI。有关配置的更多信息 AWS CLI，请参阅[《[AWS Command Line Interface 用户指南](https://docs.aws.amazon.com/cli/latest/userguide/)》 AWS CLI中的配置](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。有关支持的媒体文件类型的列表，请参阅[支持的媒体文件类型和大小 WhatsApp支持的媒体文件类型](supported-media-types.md)。

**注意**  
WhatsApp 在删除媒体文件之前将其存储 30 天，请参阅*WhatsApp 商业平台云 API 参考*中的[上传媒体](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#upload-media)。

1. 将媒体文件上传到 Amazon S3 存储桶。有关更多信息，请参阅 [上传要与之一起发送的媒体文件 WhatsApp](managing-media-files-s3.md)。

1.  WhatsApp 使用[post-whatsapp-message-media](https://docs.aws.amazon.com/cli/latest/reference/socialmessaging/post-whatsapp-message-media.html)命令将媒体文件上传到。成功完成后，该命令将返回{{{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`代替，使用[预签名网址](managing-media-files-s3.md#managing-media-files-s3.title)进行上传。`--source-s3-file`您必须在`headers`字段`Content-Type`中添加。如果同时使用两者，`InvalidParameterException`则返回一个。

   ```
   --source-s3-presigned-url headers={"{{Name}}":"{{Value}}"},url={{https://BUCKET.s3.REGION/MEDIA_FILE}}
   ```

1. 使用[send-whatsapp-message](https://docs.aws.amazon.com/cli/latest/reference/socialmessaging/send-whatsapp-message.html)命令发送媒体消息。

   ```
   aws socialmessaging send-whatsapp-message --message '{"messaging_product":"whatsapp","to":"'{{{PHONE_NUMBER}}}'","type":"image","image":{"id":"'{{{MEDIA_ID}}}'"}}' --origination-phone-number-id {{{ORIGINATION_PHONE_NUMBER_ID}}} --meta-api-version v20.0
   ```
**注意**  
使用 AWS CLI 版本 2 时，必须指定 base64 编码。这可以通过添加 AWS CLI 参数`--cli-binary-format raw-in-base64-out`或更改 AWS CLI 全局配置文件来完成。有关更多信息，请参阅[https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings)*版本 2 的《AWS 命令行界面用户指南》*。  

   ```
   aws socialmessaging send-whatsapp-message --message '{"messaging_product":"whatsapp","to":"'{{{PHONE_NUMBER}}}'","type":"image","image":{"id":"'{{{MEDIA_ID}}}'"}}' --origination-phone-number-id {{{ORIGINATION_PHONE_NUMBER_ID}}} --meta-api-version v20.0 --cli-binary-format raw-in-base64-out
   ```

   在上述命令中，执行以下操作：
   + {{{PHONE\_NUMBER}}}替换为客户的电话号码。
   + {{{ORIGINATION\_PHONE\_NUMBER\_ID}}}替换为您的电话号码的 ID。
   + {{{MEDIA\_ID}}}替换为上一步返回的媒体 ID。

1. 当您不再需要媒体文件时，可以使用[delete-whatsapp-message-media](https://docs.aws.amazon.com/cli/latest/reference/socialmessaging/delete-whatsapp-media-message.html)命令将其从中 WhatsApp 删除。这只会从您的 Amazon S3 存储桶中删除媒体文件 WhatsApp ，而不会从您的 Amazon S3 存储桶中

   ```
   aws socialmessaging delete-whatsapp-message-media --media-id {{{MEDIA_ID}}} --origination-phone-number-id {{{ORIGINATION_PHONE_NUMBER_ID}}}
   ```

   在上述命令中，执行以下操作：
   + {{{ORIGINATION\_PHONE\_NUMBER\_ID}}}替换为您的电话号码的 ID。
   + {{{MEDIA\_ID}}}替换为媒体 ID。