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>