Catalogo

L'estensione Facebook Business (FBE) utilizza il catalogo per acquisire l'inventario di un'azienda. Viene utilizzato per varie funzioni, come inserzioni dinamiche, shop delle Pagine e la scheda dei servizi in evidenza. È un passaggio facoltativo dell'integrazione, ma è necessario per alcune funzioni.

Il catalogo di Facebook ha la sua suite di API, ma FBE si integra direttamente con alcune di esse in modo da poter aggiornare facilmente l'inventario di un'azienda sulla nostra piattaforma (senza che tu debba tenere traccia degli ID del catalogo di Facebook).

Per assicurarti che tutti i campi obbligatori siano correttamente compilati nel tuo catalogo per inserzioni dinamiche e casi d'uso commerciali (shop della Pagina, Shopping su Instagram, Marketplace), consulta Campi di supporto.

Aggiornamento dell'inventario

Per aggiornare l'inventario, esistono 2 metodi:

  • Push: eseguire il push del catalogo su Facebook tramite l'API (procedura consigliata)
  • Pull: richiedere a Facebook di eseguire periodicamente il pull del catalogo dalla tua piattaforma (procedura sconsigliata in quanto porta ad avere inventari inattivi e un carico sul server non necessario)

Metodi push

Consigliamo vivamente di utilizzare uno dei metodi push (API Batch o API One-Time Feed Upload) in quanto consentono aggiornamenti istantanei dell'inventario e riducono il carico sul server da entrambe la parti. L'access_token usato qui è lo stesso restituito da Business Login e dal webhook.

Devi inviarci l'inventario completo di un'azienda non appena ricevi un nuovo webhook di installazione. Devi inviare un aggiornamento ogni volta che un'azienda apporta una modifica al proprio inventario sul tuo sito web.

API Batch

Consigliata per la maggior parte delle aziende di e-commerce. L'API Batch è un'API Catalog di Facebook standard ed è utile per le aziende con inventari di grandi dimensioni (oltre 100 articoli) e/o che aggiornano frequentemente gli articoli.

API One-Time Feed Upload

Disponibile per le aziende che si occupano di appuntamenti (servizi). L'API One-Time Feed Upload è un'API Catalog di Facebook standard ed è utile per le aziende con inventari di dimensioni più contenute (circa 100 articoli o meno).

Con questo metodo, invii un inventario completo ogni volta che viene effettuato un aggiornamento, che esegue una sostituzione completa dell'inventario nel catalogo di Facebook.

Passaggio 1: ottieni l'ID dell'elenco creato durante l'installazione dell'estensione Facebook Business inviando l'ID del catalogo collegato (dalle notifiche webhook o dal nostro endpoint dell'API di installazione dell'estensione Facebook Business):

curl -G \
-d "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_feeds

Ulteriori informazioni sull'API Product Feed.

Passaggio 2: esegui caricamenti una tantum nell'elenco:

Esempio: file di elenco ospitati in una posizione pubblica.

Tool di esplorazione per la API Graph
curl -X POST \
  -F 'url="http://www.example.com/sample_feed.xml"' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com

url=http%3A%2F%2Fwww.example.com%2Fsample_feed.xml
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{FEED_ID}/uploads',
    array (
      'url' => 'http://www.example.com/sample_feed.xml',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{FEED_ID}/uploads",
    "POST",
    {
        "url": "http:\/\/www.example.com\/sample_feed.xml"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

Esempio: caricamento di file di elenco direttamente dalla macchina locale. Il percorso al file deve essere modificato in base al tuo caso d'uso.

Tool di esplorazione per la API Graph
curl -X POST \
  -F 'file=@catalog.csv;type=text/csv' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com

file=%40catalog.csv%3Btype%3Dtext%2Fcsv
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{FEED_ID}/uploads',
    array (
      'file' => '@catalog.csv;type=text/csv',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{FEED_ID}/uploads",
    "POST",
    {
        "file": "@catalog.csv;type=text\/csv"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

Formati supportati

Per il resto, tutti i formati di richiesta e risposta sono gli stessi documentati per l'endpoint originale.

Consulta Campi supportati del catalogo Appuntamenti (Servizi).

Metodo pull

Sconsigliamo questo metodo in quanto porta ad avere inventari inattivi fino ai pull successivi, ma è utile per le piccole aziende con self hosting e un file di inventario accessibile pubblicamente. Se scegli di utilizzare questo metodo per un'azienda, devi specificare la funzione catalog_feed_scheduled in Business Configuration, trasmessa tramite Business Login. Una volta definita, recuperiamo regolarmente l'inventario dell'azienda dall'URL pubblico specificato, indipendentemente da eventuali aggiornamenti.

Ulteriori informazioni sul metodo di pull programmato degli elenchi.