Webhook

I webhook ti consentono di ricevere notifiche HTTP in tempo reale relative alle modifiche subite da oggetti specifici nel social graph di Facebook. Ad esempio, potremmo inviarti una notifica quando un utente della tua app modifica il proprio indirizzo e-mail o quando lascia un commento sulla tua Pagina Facebook. Ciò ti evita di effettuare query all'API Graph per modifiche agli oggetti che potrebbero essere avvenute o meno e ti aiuta a non superare il tuo rate limiting.

I webhook per i pagamenti e i webhook per Messenger presentano procedure di configurazione leggermente diverse. Se stai configurando un webhook per uno di questi prodotti, consulta la rispettiva documentazione per le istruzioni di configurazione.

Oggetti, campi e valori

Ci sono molti tipi di oggetti nel Social Graph di Facebook, come oggetti User e oggetti Page, quindi ogni volta che configuri un Webhook devi prima scegliere un tipo di oggetto. Dal momento che i vari oggetti presentano campi diversi, devi iscriverti ai campi specifici per il tipo di oggetto. Riceverai una notifica a ogni modifica dei valori relativa ai campi degli oggetti a cui hai effettuato l'iscrizione.

Ti invieremo le notifiche come richieste HTTP POST contenenti un payload JSON che descrive la modifica. Ad esempio, supponiamo che tu abbia configurato un webhook User ed eseguito l'iscrizione al campo Photos. Se uno degli utenti della tua app carica una foto, ti invieremo una notifica simile a questa:

Esempio di notifica

{
  "entry": [
    {
      "time": 1520383571,
      "changes": [
        {
          "field": "photos",
          "value": {
            "verb": "update",
            "object_id": "10211885744794461"
          }
        }
      ],
      "id": "10210299214172187",
      "uid": "10210299214172187"
    }
  ],
  "object": "user"
}

Server HTTPS

I Webhook vengono inviati utilizzando HTTPS, quindi il tuo server deve essere in grado di ricevere ed elaborare richieste HTTPS e deve avere un certificato TLS/SSL valido installato. I certificati autofirmati non sono supportati.

Analisi dell'app

Webhooks non richiede l'analisi dell'app. Tuttavia, per poter ricevere da Webhooks le notifiche delle modifiche agli oggetti quando la tua app è in modalità pubblicata, l'app deve avere le autorizzazioni necessarie per accedere a quegli oggetti. Consulta Autorizzazioni qui sotto.

Autorizzazioni

Prima che un'app possa essere resa pubblica, in genere deve essere sottoposta all'analisi dell'app. Durante l'analisi, le app possono richiedere l'approvazione per autorizzazioni di specifiche, che controllano i tipi di dati a cui l'app può accedere quando utilizza l'API Graph.

Sebbene il prodotto Webhooks non richieda l'analisi dell'app, rispetta delle autorizzazioni. Ciò significa che, anche se configuri un Webhook e ricevi gli aggiornamenti per campi specifici su un tipo di oggetto, non riceverai notifiche di eventuali modifiche a un oggetto di quel tipo a meno che:

  • la tua app non sia stata approvata per le autorizzazioni corrispondenti a quel tipo di dati e
  • l'oggetto proprietario dei dati non abbia autorizzato l'app ad accedere a tali dati (ad esempio, un utente che consente alla tua app di accedere al proprio feed).

Modalità sviluppo

Le app in modalità sviluppo non riceveranno notifiche Webhooks in tempo reale. Mentre un'app è in modalità sviluppo, saranno inviate solo le notifiche di prova avviate attraverso la dashboard gestione app.

Il comportamento della modalità di sviluppo è diverso per gli eventi Webhooks Messenger. Consulta il documento Webhooks per Messenger per i dettagli.

Configurazione

Per usare i Webhooks, dovrai configurare un endpoint su un server sicuro (HTTPS), quindi aggiungere e configurare i prodotti Webhooks nella tua dashboard gestione app. La parte rimanente di questi documenti spiega come completare entrambi questi passaggi.

Tutto pronto? Iniziamo!