Servicio de notificaciones
El servicio de notificaciones de AFP permite que las plataformas Transparentes de AFP reciban notificaciones cuando se aprueben los PlatformChildSite, lo que indica que el sitio ahora está disponible en la API.
Para recibir notificaciones, implementa un servidor que acepte solicitudes POST y analice la carga útil de JSON que se describe en el esquema (consulta la configuración de ejemplo). Luego, debes proporcionar la URL del extremo a tu administrador de socios estratégicos para activar el servicio.
Esquema
La carga útil de la notificación debe cumplir con el siguiente esquema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Notification",
"type": "object",
"properties": {
"platformPublisherId": {
"type": "string",
"description": "The unique identifier for the platform publisher."
},
"publisherId": {
"type": "string",
"description": "The unique identifier for the publisher."
},
"platformChildSiteName": {
"type": "string",
"description": "The name of the PlatformChildSite the notification refers to (populated for SITE_APPROVAL)."
},
"notificationType": {
"type": "string",
"enum": ["SITE_APPROVAL"],
"description": "Type of notification"
},
},
"required": ["platformPublisherId", "publisherId", "notificationType"],
"additionalProperties": false
}
Más adelante, se podrían agregar más notificationTypes
y otros campos.
Ejemplos
Una notificación SITE_APPROVAL
se vería de la siguiente manera:
{
"platformPublisherId" : "pub-123",
"publisherId" : "pub-456",
"platformChildSiteName" : "accounts/pub-123/platforms/my-platform/childAccounts/pub-456/sites/child-domain.com",
"notificationType": "SITE_APPROVAL"
}
Configuración de ejemplo
El siguiente es un ejemplo de un servidor de NodeJS que registra el contenido de una notificación:
// 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 platformPublisherId:', req.body.platformPublisherId)
console.log('Received publisherId:', req.body.publisherId)
console.log('Received platformChildSiteName:', req.body.platformChildSiteName)
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}`);
});
Ejemplo de URL de extremo: https://yourdomain.com/your-endpoint
Envía una solicitud POST con curl
para verificar que tu extremo funcione:
curl -X POST https://yourdomain.com/your-endpoint \
-H "Content-Type: application/json" \
-d '{"platformPublisherId" : "pub-123", \
"publisherId" : "pub-456", \
"platformChildSiteName" : "accounts/pub-123/platforms/my-platform/childAccounts/pub-456/sites/child-domain.com", \
"notificationType": "SITE_APPROVAL"}'
Configura robots.txt
Verifica que el servicio de notificaciones tenga acceso a tu extremo. El servicio de notificaciones respeta las directivas que se describen en el archivo robots.txt
de la raíz de tu dominio, si existe:
User-agent: GoogleOther
Disallow: <ensure your endpoint is not disallowed>