Ce document a été mis à jour.
La traduction en Français (France) n’est pas encore terminée.
Anglais mis à jour : 20 oct. 2023

Référence sur l’API Attachment Upload

L’API Attachment Upload permet d’importer des éléments qui peuvent être envoyés ultérieurement dans des messages. Ainsi, vous évitez d’importer plusieurs fois des fichiers couramment utilisés. L’API permet d’enregistrer des éléments à partir d’une URL ou d’un système de fichier local.

Vous pouvez également utiliser l’API Send pour réaliser simultanément l’envoi d’un message avec pièce jointe et l’enregistrement de la pièce jointe pour la réutiliser ultérieurement. Pour en savoir plus, consultez la Référence sur l’API Send.

Importer une pièce jointe

Pour importer une pièce jointe, envoyez une requête POST au point de terminaison /Your-page-id/message_attachment avec message.attachment associée à type et payload. Pour pouvoir utiliser l’élément dans plusieurs messages, définissez payload.is_reusable sur true.

Exemple de requête d’importation à partir d’une URL

Le code a été mis en forme pour plus de lisibilité. Remplacez les valeurs en gras et en italique, telles que page_access_token, par vos propres valeurs.

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/message_attachment" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image", 
               "payload":{
                 "url":"https.your-url.com/image.jp",
                 "is_reusable": true
               }
             }
           }
         }'

Exemple de requête d’importation à partir d’un fichier

Le code a été mis en forme pour plus de lisibilité. Remplacez les valeurs en gras et en italique, telles que page_access_token, par vos propres valeurs.

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/message_attachment" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image"
             }
           },
           "filedata":"@/path-to-your-file/image.png";"type":"image/png"
         }'

En cas de réussite votre application reçoit un objet JSON avec attachment_id défini sur l’ID de votre pièce jointe à utiliser dans vos messages.

{"attachment_id": "Your-attachment-ID"}

Envoyer un message avec un élément importé

Pour envoyer un message avec un élément que vous avez précédemment importé, avec message.attachment.payload.is_reusable défini sur true, envoyez une requête POST au point de terminaison /Your-page-id/messages avec recipient.id, et l’objet message.attachment associé à type et payload.attachment_id.

Exemple de requête d’importation à partir d’un fichier

Le code a été mis en forme pour plus de lisibilité. Remplacez les valeurs en gras et en italique, telles que page_access_token, par vos propres valeurs.

curl -X POST "https://graph.facebook.com/v19.0/Your-page-id/messages" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image",
               "payload":{
                 "attachment_id":"Your-attachment-ID"
               }
             }
           }
         }'

En cas de réussite, votre application reçoit un objet JSON avec success défini sur true.

{"success": "true"}

Propriétés

Pour joindre des éléments à partir d’une URL, vous devez préciser les propriétés suivantes dans le corps de la demande en tant qu’objet JSON. Quand la source de l’élément est un fichier, envoyez les propriétés sous forme de données de formulaire.

message

Description of the message to be sent.
Property Type Description

message.attachment

Object

An object describing attachments to the message.

message.attachment

Propriété Type Description

type

Chaîne

Type de la pièce jointe. Valeurs possibles :

  • image
  • video
  • audio
  • file

payload

Objet

Objet payload qui décrit la pièce jointe.

message.attachment.payload

Propriété Type Description

url

Chaîne

Facultatif. URL du fichier à importer. Taille maximale : 8 Mo pour les fichiers image, 25 Mo pour les autres types de fichiers (après encodage). Délai d’expiration appliqué : 75 s pour les vidéos, 10 s pour tous les autres types de fichiers.

is_reusable

Booléen

Facultatif.true indique que l’élément enregistré peut être envoyé à d’autres destinataires du message. Valeur par défaut : false.

Codes d’erreur

Code d’erreurSous-codeMessage

100

2018074

ID non valide ou vous n’êtes pas propriétaire de la pièce jointe.

100

2018008

Impossible de récupérer le fichier à partir de l’URL. Vérifiez que l’URL, le certificat SSL associé et la taille du fichier sont valides, et que le serveur répond dans les temps afin d’éviter toute expiration.

100

2018294

Expiration du délai d’importation de la vidéo ou vidéo corrompue. Remarque : au-delà de 75 secondes, la demande du fichier vidéo expirera

100

2018047

Échec du téléchargement de la pièce jointe. Cette erreur survient souvent quand le type de contenu multimédia indiqué ne correspond pas au type de fichier récupéré à partir de l’URL