AVISO: os IDs de anexo expiram após 90 dias. Depois que o ID de anexo expirar, será necessário recarregar a mídia para obter um novo.
Embora os anexos reutilizáveis expirem após 90 dias e não possam ser reenviados, os anexos nas conversas nunca expiram e ficam visíveis até que o usuário exclua a mensagem. Se o caso de uso permitir, será possível combinar as etapas de carregamento e envio conforme mencionado abaixo para evitar o problema de TTL.
A API de Carregamento de Anexos permite carregar ativos que podem ser enviados em mensagens em outro momento. Ela ajuda a evitar o carregamento desnecessário e frequente de arquivos muito utilizados. Essa API oferece suporte para salvar ativos a partir de uma URL ou um sistema de arquivos local.
Também é possível usar a Send API para enviar uma mensagem com um anexo e simultaneamente salvá-lo para uso posterior. Para ver mais informações, consulte a seção Carregar e enviar abaixo.
Para carregar um anexo, envie uma solicitação POST
ao ponto de extremidade /
Your-page-id
/message_attachment
com message.attachment
incluindo type
e payload
. Se quiser usar o ativo em várias mensagens, defina payload.is_reusable
como true
.
Texto formatado para facilitar a leitura. Substitua os valores em negrito e itálico (como page_access_token) pelos seus valores.
curl -X POST "https://graph.facebook.com/v21.0
/Your-page-id/message_attachments" \
-H "Content-Type: application/json" \
-d '{
"access_token":"Your_page_access_token",
"message":{
"attachment":{
"type":"image",
"payload":{
"url":"https://your-url.com/image.jpg",
"is_reusable": true
}
}
}
}'
Texto formatado para facilitar a leitura. Substitua os valores em negrito e itálico (como page_access_token) pelos seus valores.
curl -X POST -H "Content-Type: application/json" -d '{
"message": {
"attachment": {
"type": "image"
}
},
"filedata": "@/path-to-your-file/image.jpg",
"type": "image/png"
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/message_attachments?access_token={PAGE_ACCESS_TOKEN}"
Caso a solicitação seja bem-sucedida, o app receberá um objeto JSON com attachment_id
definido como o ID do anexo a ser usado nas suas mensagens.
{"attachment_id": "Your-attachment-ID"}
Para enviar uma mensagem com um ativo que já foi carregado, carregue-o com message.attachment.payload.is_reusable
definido como true
, envie uma solicitação POST
ao ponto de extremidade /
Your-page-id
/messages
com recipient.id
, além do objeto message.attachment
com type
e payload.attachment_id
.
Texto formatado para facilitar a leitura. Substitua os valores em negrito e itálico (como page_access_token) pelos seus valores.
curl -X POST -H "Content-Type: application/json" -d '{
"recipient": {
"id": "{PSID}"
},
"message": {
"attachment": {
"type": "image",
"payload": {
"attachment_id": "Your-attachment-ID"
}
}
}
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"
Caso seja bem-sucedida, o app receberá um objeto JSON com success
definido como true
.
{"success": "true"}
Também é possível carregar e enviar a mídia em uma solicitação única de API.
AVISO:não defina is_public=true
na carga nesse caso. Os anexos na conversa com usuário são sempre privados.
Texto formatado para facilitar a leitura. Substitua os valores em negrito e itálico (como page_access_token) pelos seus valores.
curl -X POST -H "Content-Type: application/json" -d '{
"recipient": {
"id": "{PSID}"
},
"message": {
"attachment": {
"type": "image",
"payload": {
"url": "https://your-url.com/image.jpg"
}
}
}
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"
Caso seja bem-sucedida, o app receberá um objeto JSON com success
definido como true
.
{"success": "true"}
Para anexos com origem em URLs, forneça as propriedades a seguir no corpo da solicitação como um objeto JSON. Para anexos com origem em arquivos, envie as propriedades como dados de formulário.
message
Property | Type | Description |
---|---|---|
| Object | An object describing attachments to the message. |
message.attachment
Propriedade | Tipo | Descrição |
---|---|---|
| String | O tipo do anexo. Deve ser um destes:
|
| Objeto | O objeto |
message.attachment.payload
Propriedade | Tipo | Descrição |
---|---|---|
| String | Opcional. A URL do arquivo a ser carregado. O tamanho máximo de arquivo é 8 MB para imagens e 25 MB para outros tipos de arquivo (após codificação). Estabelecemos o tempo-limite de 75 segundos para vídeos e 10 segundos para outros tipos de arquivo. |
| Booleano | Opcional, definido como false por padrão. Se você carregar e enviar uma chamada de API, não defina como Defina como true somente ao carregar e enviar em etapas separadas. Os IDs de anexo expiram após 90 dias. Após 90 dias, carregue novamente a mídia para obter um novo ID de anexo. Embora os anexos reutilizáveis expirem após 90 dias e não possam ser reenviados, os anexos nas conversas nunca expiram e ficam visíveis até que o usuário exclua a mensagem. |
Código de erro | Subcódigo | Mensagem |
---|---|---|
100 | 2018074 | O ID pode ser inválido ou o anexo não é sua propriedade. |
100 | 2018008 | Erro ao obter o arquivo da URL. Verifique se a URL está funcionando e tem um certificado SSL válido, se o tamanho do arquivo é compatível e se o servidor está respondendo com rapidez para evitar o tempo-limite. |
100 | 2018294 | O carregamento do vídeo atingiu o tempo-limite ou o vídeo está corrompido. Caso não seja obtido em até 75 segundos, ele atingirá o tempo-limite. |
100 | 2018047 | Erro ao carregar o anexo. Isso acontece quando o tipo de mídia não corresponde ao tipo de arquivo fornecido na URL. |