JavaScript aan de clientzijde

Een voorbeeld van het dialoogvenster waarin de abonnee wordt gevraagd het abonnement te koppelen

Met het koppelen van abonnementen is javascript aan de clientzijde de enige manier om een nieuwe koppeling te maken tussen een PPID en het Google-account van een lezer. Op een geconfigureerde pagina krijgen lezers een dialoogvenster waarin ze worden gevraagd om hun abonnement te koppelen. Nadat lezers op de knop Doorgaan met Google hebben geklikt, kunnen ze een account kiezen om te koppelen en worden ze teruggestuurd naar de geconfigureerde pagina zodra dat gedaan is.

Je kunt de PPID koppelen aan het account van de lezer via de methode linkSubscription in swg.js. Het gebruik is vergelijkbaar met de vorige functie voor het koppelen van accounts (voorbeeld), maar in plaats van een belofte in te stellen, accepteert de methode een object met de PPID.

Codevoorbeelden

Deze voorbeelden van codes aan de clientzijde illustreren hoe je een link initieert, hoe een geldige reactie eruitziet en (optioneel) hoe je de eventManager-swg.js gebruikt om te luisteren naar analysegebeurtenissen en ze overeenkomstig te routeren.

Het dialoogvenster voor de abonnementskoppeling starten

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

Voorbeeld van reactie

Geldige reacties van een succesvol gekoppeld account bevatten zowel de PPID gebruikt in de koppeling als een booleaanse success-status.

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

Voor het koppelen van abonnementen is het gebruik van cookies van derden of een actieve Google-sessie voor de lezer niet vereist. Hierdoor kun je het koppelingsproces op elk gewenst moment starten voor de lezer en niet alleen na een aankoop. Als een lezer niet is ingelogd op een Google-account, krijgt deze de mogelijkheid om dit te doen als onderdeel van het proces.

Volledig voorbeeld aan de clientzijde

<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>

Een OAuth-client-ID maken

Hoewel een OAuth-client niet vereist is voor het koppelen van abonnementen, kan een OAuth-client gebruikt worden om de toelatingslijst met geautoriseerde domeinen voor je project te machtigen. Geautoriseerde domeinen zijn een lijst met domeinen van waaruit je JavaScript aan de clientzijde mag aanroepen. Je publicatie heeft waarschijnlijk al een OAuth-client-ID ingesteld in het Uitgeverscentrum voor gebruik met swg.js.

Testen

Als je de implementatie aan de clientzijde van het koppelen van abonnementen wilt testen, moet de code uitgevoerd worden vanaf een server met een geautoriseerde JavaScript-oorsprong.

  1. Voor productiegebruik kunnen geautoriseerde oorsprongen afkomstig zijn van de geconfigureerde OAuth-client of van de lijst met geverifieerde domeinen in de publicatie-instellingen in het Uitgeverscentrum.
  2. Voor ontwikkelings- of testfasegebruik met een niet-verifieerbaar domein (bijv. localhost of een niet-openbare server), moet het domein in de geconfigureerde OAuth-client vermeld worden.

Fouten oplossen

Het meest voorkomende probleem bij het testen van JavaScript aan de clientzijde is een 403 - Not Authorized-fout krijgen wanneer geprobeerd wordt het JavaScript uit te voeren. Als je dit wilt oplossen, moet je ervoor zorgen dat je het JavaScript uitvoert vanaf een gevalideerd domein in het Uitgeverscentrum of dat je de code uitvoert op een host die aanwezig is in de geautoriseerde js-oorsprong van de gekoppelde OAuth-client.