Łączenie kont użytkowników (JavaScript po stronie klienta)

Przykład okna dialogowego z prośbą o połączenie subskrypcji

W przypadku łączenia subskrypcji jedynym sposobem utworzenia nowe powiązanie między usługą PPID a kontem Google czytelnika. Na skonfigurowanej stronie czytelnik zobaczy okno z prośbą o połączenie subskrypcji. Gdy czytelnik kliknie przycisk „Kontynuuj z Google” przycisk może wybrać konto, które ma zostać połączone, a następnie zostanie odesłany na skonfigurowaną stronę po zakończeniu.

Identyfikator PPID można powiązać z kontem czytelnika za pomocą linkSubskrypcja w usłudze swg.js. Korzystanie z tej usługi jest podobne jak w przypadku poprzedniego konta Funkcja łączenia (przykład), ale zamiast przekazywać obietnicę, metoda akceptuje obiekt zawierający PPID.

Przykłady kodu

Te przykłady kodu po stronie klienta pokazują, jak utworzyć link, i (opcjonalnie) jak użyć menedżera zdarzeń swg.js, aby nasłuchiwać zdarzeń analitycznych i odpowiednio je kierować.

Otwórz okno łączenia subskrypcji

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

Przykładowa odpowiedź

Prawidłowe odpowiedzi z połączonego konta zawierają zarówno użyte, jak i PPID i stan logiczny success.

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

Łączenie subskrypcji nie wymaga korzystania z plików cookie innych firm ani aktywnej sesji Google w przypadku czytelnika. Dzięki temu użytkownik może w dowolnym momencie podczas czytania otworzyć proces łączenia, a nie tylko po dokonaniu zakupu. Jeśli czytelnik nie jest zalogowany na konto Google, może to zrobić w ramach procesu.

Pełny przykład po stronie klienta

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

Utwórz identyfikator klienta OAuth

Klient OAuth nie jest wymagany do łączenia subskrypcji, ale możesz go użyć do autoryzacji białej listy autoryzowanych domen w projekcie. Autoryzowane domeny to lista domen, z których skrypt JavaScript po stronie klienta może wykonywać wywołania. Twoja publikacja prawdopodobnie ma już protokół OAuth Identyfikator klienta skonfigurowany w Centrum wydawców do użytku z swg.js.

Testowanie

Aby przetestować implementację funkcji Linkowanie subskrypcji po stronie klienta, kod musi być uruchamiany z serwera z autoryzowanym źródłem kodu JavaScript.

  1. W przypadku wersji produkcyjnej autoryzowane źródła mogą pochodzić z skonfigurowanego klienta OAuth lub z listy zweryfikowanych domen w ustawieniach publikacji w Centrum wydawców.
  2. Do użytku deweloperskiego lub przejściowego, z domeną, której nie można zweryfikować (np. localhost) lub niepubliczny), domena musi być wymieniona w skonfigurowanym protokole OAuth Klienta.

Rozwiązywanie problemów

Najczęstszym problemem podczas testowania kodu JavaScript po stronie klienta jest otrzymywanie Podczas próby uruchomienia JavaScriptu wystąpił 403 - Not Authorized błąd. Aby to zrobić, upewnij się, że uruchamiasz kod JavaScript z weryfikowanej domeny w Publisher Center lub że uruchamiasz go na hoście, który należy do autoryzowanych źródeł js powiązanego klienta OAuth.

Następny krok

Gratulujemy ukończenia integracji JavaScriptu po stronie klienta. Teraz możesz przejść do integracji po stronie serwera. Jest to wymagany krok do synchronizowania uprawnień czytelników. Gdy zaimplementuj i użyj wymaganej funkcji UpdateReaderEntitlements po stronie serwera, można zapewnić podświetlenie odpowiednich artykułów subskrybentów.