whatsapp api 中的这些媒体提供商是什么?
What are these media providers in whatsapp apis?
我已经使用 whatsapp business api 在企业帐户和客户之间建立了双向通信。我无法理解媒体供应商,那里的文档谈到如何使用 image/media.
向客户发送短信
这里是link:https://developers.facebook.com/docs/whatsapp/api/settings/media-providers/
这些提供商是谁?他们是某个特定的组织吗?
我目前正在使用某种预签名 url 方法将媒体文件存储在 AWS S3 中。我可以在 whatsapp 媒体消息中使用存储在 S3 中的媒体吗?
举个例子会有很大帮助。
根据Whatsapp API media messages documentation,发送图片外发消息有两种方式:
- 通过媒体 ID 发送图像
- 通过URL
发送图片
选择 2 时,通过其 URL 发送,有时您可能需要设置 Media Provider 设置,如果您引用的图像 URL 是不能直接访问,需要 username/password 身份验证甚至不记名令牌。 (检查 https://developers.facebook.com/docs/whatsapp/api/messages)。
通过媒体 ID 发送图像
要通过 ID 发送,您需要先使用 POST /v1/media
端点上传图像文件。这将 return Media-ID(例如:456
),您应该使用它来在 POST /v1/messages/
端点上编写消息对象,像这样:
{
"to": "1234567",
"type": "image",
"recipient_type": "individual",
"image": {
"caption": "The image caption",
"id": "456"
}
}
通过URL
发送图片
通过URL发送时,您只需在link上告知URL一个图像文件(例如:http://yourcompany.com/images/your_image.png
) 端点的 POST /v1/messages/
字段,就像这样:
{
"to": "1234567",
"type": "image",
"recipient_type": "individual",
"image": {
"caption": "The image caption",
"link": "http://yourcompany.com/images/your_image.png"
}
}
如果 URL http://yourcompany.com/images/your_image.png
在服务器上进行某种身份验证怎么办? (username/password 你可能是不记名令牌)。然后您需要首先使用 POST /v1/settings/application/media/providers
端点使用此类凭据设置 Media Provider,如下所示:
[{
"name": "yourcompany-images",
"type": "www",
"config": {
"basic": {
"username": "the-username",
"password": "the-password"
}
}
}
]
一旦您在 API 上设置了此设置,您就可以在 POST /v1/messages/
端点上通过其名称引用此 Media Provider,像这样:
{
"to": "1234567",
"type": "image",
"recipient_type": "individual",
"image": {
"caption": "The image caption",
"link": "http://yourcompany.com/images/your_image.png"
"provider": {
"name" : "yourcompany-images"
}
}
}
使用 S3 pre-signed URLs 作为图像 links
您必须考虑 pre-signed URL 是临时的 link,过一段时间就会过期。当您的 Whatsapp API 客户端一切正常并且收件人会及时收到消息时,它就可以工作。但是,如果这条链出现问题,Whatsapp API 稍后可能会再次尝试下载图像。因此请记住这一点并尝试创建具有较长到期时间的 pre-signed URLs(可能是 7 天到期 link using IAM User as explained here)。
我已经使用 whatsapp business api 在企业帐户和客户之间建立了双向通信。我无法理解媒体供应商,那里的文档谈到如何使用 image/media.
向客户发送短信这里是link:https://developers.facebook.com/docs/whatsapp/api/settings/media-providers/
这些提供商是谁?他们是某个特定的组织吗?
我目前正在使用某种预签名 url 方法将媒体文件存储在 AWS S3 中。我可以在 whatsapp 媒体消息中使用存储在 S3 中的媒体吗?
举个例子会有很大帮助。
根据Whatsapp API media messages documentation,发送图片外发消息有两种方式:
- 通过媒体 ID 发送图像
- 通过URL 发送图片
选择 2 时,通过其 URL 发送,有时您可能需要设置 Media Provider 设置,如果您引用的图像 URL 是不能直接访问,需要 username/password 身份验证甚至不记名令牌。 (检查 https://developers.facebook.com/docs/whatsapp/api/messages)。
通过媒体 ID 发送图像
要通过 ID 发送,您需要先使用 POST /v1/media
端点上传图像文件。这将 return Media-ID(例如:456
),您应该使用它来在 POST /v1/messages/
端点上编写消息对象,像这样:
{
"to": "1234567",
"type": "image",
"recipient_type": "individual",
"image": {
"caption": "The image caption",
"id": "456"
}
}
通过URL
发送图片通过URL发送时,您只需在link上告知URL一个图像文件(例如:http://yourcompany.com/images/your_image.png
) 端点的 POST /v1/messages/
字段,就像这样:
{
"to": "1234567",
"type": "image",
"recipient_type": "individual",
"image": {
"caption": "The image caption",
"link": "http://yourcompany.com/images/your_image.png"
}
}
如果 URL http://yourcompany.com/images/your_image.png
在服务器上进行某种身份验证怎么办? (username/password 你可能是不记名令牌)。然后您需要首先使用 POST /v1/settings/application/media/providers
端点使用此类凭据设置 Media Provider,如下所示:
[{
"name": "yourcompany-images",
"type": "www",
"config": {
"basic": {
"username": "the-username",
"password": "the-password"
}
}
}
]
一旦您在 API 上设置了此设置,您就可以在 POST /v1/messages/
端点上通过其名称引用此 Media Provider,像这样:
{
"to": "1234567",
"type": "image",
"recipient_type": "individual",
"image": {
"caption": "The image caption",
"link": "http://yourcompany.com/images/your_image.png"
"provider": {
"name" : "yourcompany-images"
}
}
}
使用 S3 pre-signed URLs 作为图像 links
您必须考虑 pre-signed URL 是临时的 link,过一段时间就会过期。当您的 Whatsapp API 客户端一切正常并且收件人会及时收到消息时,它就可以工作。但是,如果这条链出现问题,Whatsapp API 稍后可能会再次尝试下载图像。因此请记住这一点并尝试创建具有较长到期时间的 pre-signed URLs(可能是 7 天到期 link using IAM User as explained here)。