Riferimento per l'API Attachment Upload

ATTENZIONE: gli ID degli allegati scadono dopo 90 giorni. Dopo la scadenza dell'ID di un allegato, dovrai caricare di nuovo il contenuto multimediale per ottenere un nuovo ID allegato.

Anche se gli allegati riutilizzabili scadono dopo 90 giorni e non potranno essere nuovamente inviati, gli allegati nelle conversazioni non scadono mai e rimangono visibili finché un utente non elimina il messaggio dalla conversazione. Se il tuo caso d'uso lo consente, puoi combinare i passaggi di caricamento e invio come indicato di seguito per evitare questo problema TTL.

L'API Attachment Upload consente di caricare risorse che possono essere inviate nei messaggi in un secondo momento, evitando così di dover caricare più volte file di uso comune. L'API supporta il salvataggio delle risorse da un URL e dal tuo file system locale.

Puoi inoltre utilizzare l'API Send per inviare contemporaneamente un messaggio con un allegato e salvare l'allegato per un uso successivo. Per maggiori informazioni, vedi la sezione Caricamento e invio di seguito.

Caricamento di un allegato

Per caricare un allegato invia una richiesta POST all'endpoint </Your-page-id/message_attachments con message.attachment con type e payload. Per poter utilizzare la risorsa in più messaggi, imposta payload.is_reusable su true.

Esempio di richiesta di caricamento da un URL

Formattato per una maggiore leggibilità. Sostituisci i valori corsivi in grassetto come page_access_token con i tuoi valori.

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
               }
             }
           }
         }'

Esempio di richiesta di caricamento da un file

Formattato per una maggiore leggibilità. Sostituisci i valori corsivi in grassetto come page_access_token con i tuoi valori.

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}"

In caso di azione eseguita correttamente, l'app riceverà un oggetto JSON con attachment_id impostato sull'ID del tuo allegato da utilizzare nei messaggi.

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

Invio di un messaggio con una risorsa caricata

Per inviare un messaggio con una risorsa che hai caricato in precedenza con message.attachment.payload.is_reusable impostato su true, invia una richiesta POST all'endpoint /Your-page-id/messages con recipient.id e l'oggetto message.attachment con type e payload.attachment_id.

Esempio di richiesta di caricamento da un file

Formattato per una maggiore leggibilità. Sostituisci i valori corsivi in grassetto come page_access_token con i tuoi valori.

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}"

In caso di azione eseguita correttamente, l'app riceverà un oggetto JSON con success impostato su true.

{"success": "true"}

Caricamento e invio

Puoi anche caricare contenuti multimediali e inviarli in un'unica richiesta API.

ATTENZIONE:non impostare is_public=true nel payload per questo caso. Gli allegati nella conversazione dell'utente rimangono sempre privati.

Esempio di richiesta di caricamento da un URL

Formattato per una maggiore leggibilità. Sostituisci i valori corsivi in grassetto come page_access_token con i tuoi valori.

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}"

In caso di azione eseguita correttamente, l'app riceverà un oggetto JSON con success impostato su true.

{"success": "true"}

Proprietà

Per gli allegati da un URL, fornisci le seguenti proprietà nel corpo della richiesta come oggetto JSON. Per gli allegati da file, invia le proprietà come dati del modulo.

message

Description of the message to be sent.
Property Type Description

message.attachment

Object

An object describing attachments to the message.

message.attachment

Proprietà Tipo Descrizione

type

Stringa

Il tipo di allegato. Deve essere uno dei seguenti:

  • immagine
  • video
  • audio
  • file

payload

Oggetto

Oggetto payload che descrive l'allegato.

message.attachment.payload

Proprietà Tipo Descrizione

url

Stringa

Facoltativo. URL del file da caricare. La dimensione massima del file è 8 MB per le immagini e 25 MB per tutti gli altri tipi di file (dopo la codifica). Un timeout è impostato a 75 secondi per i video e a 10 secondi per tutti gli altri tipi di file.

is_reusable

Booleano

Facoltativo, l'impostazione predefinita è false.Non impostare su true in caso di caricamento e invio in un'unica chiamata API.

Imposta su true solo se esegui il caricamento e l'invio in passaggi separati. Gli ID degli allegati scadono dopo 90 giorni. Ripeti il caricamento del contenuto multimediale per ottenere un nuovo ID allegato dopo 90 giorni.

Anche se gli allegati riutilizzabili scadono dopo 90 giorni e non potranno essere nuovamente inviati, gli allegati nelle conversazioni non scadono mai e rimangono visibili finché un utente non elimina il messaggio dalla conversazione.

Codici di errore

Codice di erroreSottocodiceMessaggio

100

2018074

Possibile ID non valido o non possiedi l'allegato.

100

2018008

Impossibile recuperare il file dall'URL. Verifica che l'URL sia valido, con un certificato SSL e una dimensione del file validi e che il server risponda abbastanza velocemente da evitare timeout.

100

2018294

Timeout del caricamento video oppure video danneggiato. Se il video non può essere recuperato entro 75 secondi, andrà in timeout.

100

2018047

Errore caricamento allegato. Questo errore viene generato comunemente quando il tipo di contenuto multimediale fornito non corrisponde al tipo di file fornito nell'URL.