Servizio di notifica

Il servizio di notifica AFP consente alle piattaforme AFP Direct di ricevere notifiche. in un subaccount e site modifiche dello stato. Le piattaforme possono utilizzare API Platform per esaminare le modifiche.

Per ricevere notifiche, implementa un server che accetti POST e analizza il payload JSON delineato nello schema (vedi configurazione di esempio). Devi quindi fornire l'URL dell'endpoint al tuo Strategic Partner Manager per attivare il servizio.

Schema

Il payload di notifica deve rispettare il seguente schema:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Notification",
  "type": "object",
  "properties": {
    "accountName": {
      "type": "string",
      "description": "The name of the modified sub-account."
    },
    "domain": {
      "type": "string",
      "description": "The domain the notification refers to, if any. Optional (only populated for SITE_APPROVAL)"
    },
    "notificationType": {
      "type": "string",
      "enum": ["PUBLISHER_APPROVAL", "SITE_APPROVAL"],
      "description": "Type of notification"
    }
  },
  "required": ["platformPublisherId", "publisherId", "notificationType"],
  "additionalProperties": false
}

Potrebbero essere aggiunti altri notificationTypes e altri campi in un secondo momento.

Esempi

Una notifica di approvazione del publisher ha questo aspetto:

{
  "accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
  "notificationType": "PUBLISHER_APPROVAL"
}

Una notifica di approvazione del sito ha questo aspetto:

{
  "accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
  "domain": "afpsite.com",
  "notificationType": "SITE_APPROVAL"
}

Configurazione di esempio

Di seguito è riportato un esempio di server NodeJS che registra i contenuti di una notifica:

// Import express
const express = require('express');

// Create an express application
const app = express();

// Middleware to parse JSON bodies
app.use(express.json());

// Define a route to receive POST requests
app.post('/notification', (req, res) => {
    console.log('Received account name:', req.body.accountName)
    console.log('Received Domain:', req.body.domain)
    console.log('Received notification type', req.body.notificationType)

    // Send a response back to the client
    res.status(200).send('Notification received');
});

// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

Esempio di URL dell'endpoint: https://yourdomain.com/your-endpoint

Verifica che l'endpoint funzioni inviando una richiesta POST utilizzando curl:

curl -X POST https://yourdomain.com/your-endpoint \
     -H "Content-Type: application/json" \
     -d '{"accountName": "platforms/pub-1234567890123456/accounts/pub-0987654321654321", \
        "notificationType": "PUBLISHER_APPROVAL"}'

Configura robots.txt

Assicurati che al servizio di notifica sia consentito l'accesso al tuo endpoint. La di notifica rispetta le direttive delineate nei robots.txt del file radice di il tuo dominio, se esistente:

User-agent: GoogleOther
Disallow: <ensure your endpoint is not disallowed>