خدمة الإشعارات
تتيح خدمة إشعارات AFP لمنصّات AFP Direct تلقّي إشعارات عند تغيُّر حالة الحساب الفرعي والموقع الإلكتروني. يمكن للمنصّات استخدام Platform API للتحقيق في التغييرات.
لتلقّي الإشعارات، عليك استخدام خادم يقبل requests POST ويحلِّل الحمولة البرمجية بتنسيق JSON الموضّحة في المخطّط (اطّلِع على مثال على الإعداد). بعد ذلك، عليك تقديم عنوان URL لنقطة النهاية إلى مدير الشركاء الاستراتيجيين لتفعيل الخدمة.
المخطط
يجب أن تلتزم حمولة الإشعار بالمخطّط التالي:
{
"$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
}
يمكن إضافة المزيد من الحقول notificationTypes
والحقول الأخرى لاحقًا.
أمثلة
سيظهر إشعار الموافقة من الناشر على النحو التالي:
{
"accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
"notificationType": "PUBLISHER_APPROVAL"
}
سيظهر إشعار الموافقة على الموقع الإلكتروني على النحو التالي:
{
"accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
"domain": "afpsite.com",
"notificationType": "SITE_APPROVAL"
}
مثال على الإعداد
في ما يلي مثال على خادم NodeJS يسجّل محتويات إشعار:
// 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}`);
});
مثال على عنوان URL لنقطة النهاية: https://yourdomain.com/your-endpoint
تأكَّد من أنّ نقطة النهاية تعمل عن طريق إرسال طلب POST باستخدام 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"}'
ضبط ملف robots.txt
تأكَّد من السماح لخدمة الإشعارات بالوصول إلى نقطة النهاية. تلتزم
خدمة الإشعارات بالتوجيهات الموضّحة فيملف
robots.txt
لجذر
نطاقك، في حال توفّره:
User-agent: GoogleOther
Disallow: <ensure your endpoint is not disallowed>