Service de notification
Le service de notification AFP permet aux plates-formes AFP Direct de recevoir des notifications en cas de modification de l'état du sous-compte et du site. Les plates-formes peuvent utiliser l'API Platform pour examiner les modifications.
Pour recevoir des notifications, implémentez un serveur qui accepte les requêtes POST et analyse la charge utile JSON décrite dans le schéma (voir exemple de configuration). Vous devez ensuite fournir l'URL du point de terminaison à votre responsable des partenaires stratégiques pour activer le service.
Schéma
La charge utile de la 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
}
D'autres notificationTypes
et d'autres champs pourront être ajoutés ultérieurement.
Exemples
Une notification d'approbation d'éditeur se présente comme suit:
{
"accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
"notificationType": "PUBLISHER_APPROVAL"
}
Voici à quoi ressemble une notification d'approbation de site:
{
"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'une 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. Le service de notification respecte les directives décrites 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>