קישור חשבונות משתמשים (JavaScript בצד הלקוח)

דוגמה לתיבת הדו-שיח שבה המנויים מתבקשים לקשר את המינוי שלהם

כשמשתמשים בקישור מינויים, JavaScript בצד הלקוח הוא הדרך היחידה ליצור שיוך חדש בין PPID לבין חשבון Google של הקורא. בדף שהוגדר, הקוראים יראו תיבת דו-שיח עם בקשה לקשר את המינוי שלהם. אחרי שהקורא ילחץ על הלחצן 'המשך עם Google' לחצן, הם יכול לבחור חשבון לקישור, ולשלוח אותו חזרה לדף שהוגדר .

השיוך של ה-PPID לחשבון של הקורא מתבצע באמצעות השיטה linkSubscription ב-swg.js. השימוש דומה לשימוש בתכונה הקודמת של קישור חשבונות (דוגמה), אבל במקום להעביר הבטחה, ה-method מקבל אובייקט שמכיל את ה-PPID.

דוגמאות לקוד

הדוגמאות האלה של קוד בצד הלקוח ממחישות איך ליזום קישור, תגובה שנראית, (אופציונלי) איך להשתמש ב-eventManager של swg.js כדי להאזין לאירועים של ניתוח נתונים ולנתב אותם בהתאם.

הפעלת תיבת הדו-שיח 'קישור מינויים'

const result = await subscriptions.linkSubscription({publisherProvidedId:6789})

דוגמה לתשובה

תשובות תקינות מחשבון שמקושר בהצלחה מכילות גם את PPID ששימש בקישור וגם סטטוס בוליאני success.

console.log(result) //{publisherProvidedId: 6789, success: true}

כדי לקשר מינויים, לא צריך להשתמש בקובצי cookie של צד שלישי או בסשן פעיל ב-Google של הקורא. כך אפשר להפעיל את חוויית הקישור בכל שלב בחוויית הקריאה, ולא רק אחרי רכישה. אם הקורא לא מחובר לחשבון Google, הוא יוכל לעשות זאת במהלך התהליך.

השלמת הדוגמה בצד הלקוח

<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 מזהה לקוח שהוגדר ב-Publisher Center, לשימוש עם swg.js.

  • אם הקריאות של JavaScript בצד הלקוח לקישור מינויים מגיעות משם דומיין שעבר אימות בעבר, אין צורך לבצע פעולה כלשהי.
  • אם קוד ה-JavaScript פועל משם דומיין חדש, פועלים לפי הוראות להגדרה של מזהה הלקוח ב-SwG OAuth.

בדיקה

כדי לבדוק את ההטמעה בצד הלקוח של 'קישור מינויים', מוסיפים את הקוד להרצה משרת עם מקור JavaScript מורשה.

  1. לשימוש בסביבת הייצור, מקורות מורשים יכולים להגיע מלקוח OAuth שהוגדר או מרשימת הדומיינים המאומתים בהגדרות של אתר החדשות ב-Publisher Center.
  2. לשימוש בפיתוח או ב-Staging, עם דומיין שלא ניתן לאימות (למשל,localhost או שרת לא ציבורי), הדומיין צריך להיות רשום ב-OAuth שהוגדר לקוח.

פתרון בעיות במקרה של שגיאות

הבעיה הנפוצה ביותר בבדיקת JavaScript בצד הלקוח היא קבלת הודעת השגיאה 403 - Not Authorized כשמנסים להריץ את ה-JavaScript. כדי לפתור את הבעיה הקפידו להריץ את ה-JavaScript מדומיין מאומת ב- ב-Publisher Center, או שאתם מריצים את הקוד במארח שנמצא מקורות js מורשים של לקוח OAuth המקושר.

השלב הבא

ברכות על השלמת השילוב של JavaScript בצד הלקוח. עכשיו אפשר להמשיך לשילוב בצד השרת. זהו שלב נדרש כדי לסנכרן את הקוראים שלך . אחרי ש להטמיע את הפונקציה UpdateReaderEntitlements שנדרשת בצד השרת ולהשתמש בה, לוודא שהמאמרים הנכונים מודגשים מנויים.