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,发送图片外发消息有两种方式:

  1. 通过媒体 ID 发送图像
  2. 通过URL
  3. 发送图片

选择 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)。