من خلال ميزة "ربط الاشتراكات"، يكون JavaScript من جهة العميل هو الطريقة الوحيدة لإنشاء
ربط جديد بين PPID
وحساب Google الخاص بالقارئ. في صفحة تم ضبطها، يظهر للقارئ مربّع حوار يطلب منه ربط اشتراكه. بعد أن ينقر القارئ على الزر "متابعة باستخدام حساب Google"،
يمكنه اختيار حساب لربطه، وسيتم إرساله مرة أخرى إلى الصفحة التي تم ضبطها
عند اكتمال العملية.
لا يتطلّب ربط الاشتراك استخدام ملفّات تعريف ارتباط تابعة لجهات خارجية أو جلسة Google نشطة للقارئ. يتيح هذا الإجراء المرن بدء تجربة الربط في أي وقت أثناء استخدام القارئ للتطبيق، وليس فقط بعد إجراء عملية شراء. إذا لم يكن القارئ مسجِّلاً الدخول إلى حساب على Google، ستتوفّر له فرصة إجراء ذلك كجزء من العملية.
أمثلة على الرموز البرمجية
توضّح أمثلة الرموز البرمجية هذه من جهة العميل كيفية بدء رابط، وشكل الردّ الصالح، و (اختياريًا) كيفية استخدام swg.js
eventManager للتنصّت على أحداث الإحصاءات وتوجيهها وفقًا لذلك.
ربط جهة نشر واحدة
يتم ربط معرّف PPID بحساب القارئ لنشر واحد
باستخدام طريقة linkSubscription
في swg.js
.
يشبه الاستخدام ميزة "ربط الحساب" السابقة (مثال)، ولكنه بدلاً من تمرير وعد، تقبل الطريقة عنصرًا يحتوي على ملف تعريف العميل المتعلّق بالإعلان (PPID).
const result = await subscriptions.linkSubscription({publisherProvidedId:6789})
نموذج ردّ (واجهة)
تحتوي الاستجابات الصالحة من حساب مرتبط بنجاح على كلّ من PPID
المستخدَم
في الرابط وحالة success
المنطقية.
{
publisherProvidedId: 6789,
success: true
}
تجميع عدة إصدارات
يمكنك تجميع عدة إصدارات في آن واحد لميزة "ربط الاشتراكات" من خلال تمرير
عنصر كوسيطة إلى الدالة linkSubscriptions
. السمة linkTo
هي مصفوفة من العناصر، حيث يمثّل كل عنصر
publicationId
محدّدًا وpublisherProvidedId
(PPID)
المرتبط به.
const result = await subscriptions.linkSubscriptions({linkTo: [
{ publicationId: 'pubId1', publisherProvidedId: 'ppid1' },
{ publicationId: 'pubId2', publisherProvidedId: 'ppid2' },
…
]});
نماذج الردود (واجهة المستخدم)
يشير الحقلان anyFailure
(منطقي) وanySuccess
(منطقي) إلى ما إذا كان هناك
أيّ فشل أو نجاح في محاولة ربط الاشتراك في الحزمة. يحتوي حقل
links
على تفاصيل النتائج لكلّ من المنشورات.
الربط بنجاح بجميع الإصدارات
{
"anyFailure": false,
"anySuccess": true,
"links": [{
"publicationId": "CAowqfCKCw",
"publisherProvidedId": "370720",
"success": true
},
{
"publicationId": "CAow5rTUCw",
"publisherProvidedId": "171385",
"success": true
}]
}
عدم ربط أيّ من المنشورات
{
"anyFailure": true,
"anySuccess": true,
"links": [{
"publicationId": "CAowqfCKCw",
"publisherProvidedId": "370720",
"success": false
},
{
"publicationId": "CAow5rTUCw",
"publisherProvidedId": "171385",
"success": true
}]
}
مثال كامل على linkSubscription
من جهة العميل
<script
async
type="application/javascript"
subscriptions-control="manual"
src="https://news.google.com/swg/js/v1/swg.js">
</script>
<script>
function linkSubscription(ppid) {
self.SWG.push(async (subscriptions) => {
try {
const result = await subscriptions.linkSubscription({
publisherProvidedId: ppid,
})
console.log(result)
} catch(e) {
console.log(e)
}
})
}
document.addEventListener('DOMContentLoaded', function () {
(self.SWG = self.SWG || []).push(subscriptions => {
subscriptions.init("PUBLICATION_ID");
//Configure the event manager for analytics integration
subscriptions.getEventManager().then(manager => {
manager.registerEventListener((event) => {
// Add code here to send the event to your analytics
// sendToAnalytics(event);
console.log(event);
});
});
});
document
.querySelector("SELECTOR")
.addEventListener('click', function(){
linkSubscription(PPID)
})
});
</script>
إنشاء معرِّف عميل OAuth
على الرغم من أنّ عميل OAuth ليس مطلوبًا لربط الاشتراكات، يمكن استخدام عميل OAuth
لإنشاء القائمة المسموح بها للنطاقات المعتمَدة لمشروعك.
النطاقات المعتمَدة هي قائمة بالنطاقات التي يُسمح لبرنامج JavaScript على جهة العميل بالاتصال بها. من المحتمل أن يكون لدى جهة النشر معرّف عميل OAuth
تم إعداده في "مركز الناشرين" لاستخدامه مع swg.js
.
- إذا كانت طلبات JavaScript من جهة العميل في ميزة "ربط الاشتراكات" تأتي من اسم نطاق تم التحقّق منه سابقًا، ليس عليك اتّخاذ أي إجراء.
- إذا كان JavaScript يعمل من اسم نطاق جديد، اتّبِع تعليمات ضبط معرّف العميل في SwG OAuth.
الاختبار
لاختبار تنفيذ ميزة "ربط الاشتراكات" من جهة العميل، يجب تنفيذ الرمز البرمجي من خادم مصدره مرخّص لرمز JavaScript.
- لاستخدام الإصدار العلني، يمكن أن تأتي المصادر المعتمَدة من العميل المُعدّ ببروتوكول OAuth أو من قائمة النطاقات التي تم إثبات ملكيتها في إعدادات النشر ضمن Publisher Center.
- لاستخدام وضع التطوير أو مرحلة الاختبار، مع نطاق لا يمكن التحقّق منه (مثل localhost أو خادم غير متاح للجميع)، يجب إدراج النطاق في ملف OAuth Client الذي تم ضبطه.
تحديد الأخطاء وتصحيحها
إنّ المشكلة الأكثر شيوعًا عند اختبار JavaScript من جهة العميل هي ظهور خطأ
403 - Not Authorized
عند محاولة تشغيل JavaScript. لحلّ
هذه المشكلة، تأكَّد من تشغيل JavaScript من نطاق تم التحقّق منه في
Publisher Center، أو من تشغيل الرمز على مضيف ضمن موارد JavaScript المعتمَدة لخادم OAuth المرتبط.
الخطوة التالية
تهانينا على إكمال عملية دمج JavaScript من جهة العميل. الآن،
يمكنك الانتقال إلى الدمج من جهة الخادم.
هذه خطوة مطلوبة لمزامنة أذونات القرّاء. عند
تنفيذ واستخدام الدالة UpdateReaderEntitlements
المطلوبة من جهة الخادم،
تؤكّد من تمييز المقالات المناسبة للمشتركين المناسبين.