Service de notification

Le service de notification AFP permet aux plates-formes AFP Direct de recevoir des notifications dans le sous-compte et site les changements d'état. Les plates-formes peuvent utiliser API Platform pour examiner les modifications.

Pour recevoir des notifications, implémentez un serveur qui accepte POST et analyse la charge utile JSON décrite dans le schéma (consultez exemple de configuration). Vous devez ensuite fournir l'URL du point de terminaison à votre Strategic Partner Manager pour activer le service.

Schéma

La charge utile de notification doit respecter le schéma suivant:

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

Vous pourrez ajouter d'autres champs notificationTypes et d'autres champs ultérieurement.

Exemples

Voici à quoi ressemble la notification d'approbation d'un éditeur:

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

Une notification d'approbation de site se présente comme suit:

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

Exemples de configuration

Voici un exemple de serveur NodeJS qui consigne le contenu d'un notification:

// 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}`);
});

Exemple d'URL de point de terminaison: https://yourdomain.com/your-endpoint

Vérifiez que votre point de terminaison fonctionne en envoyant une requête POST à l'aide de 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"}'

Configurer le fichier robots.txt

Assurez-vous que le service de notification est autorisé à accéder à votre point de terminaison. La service de notification respecte les directives définies dans le Fichier robots.txt de la racine de votre domaine, le cas échéant:

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