İstemci tarafı JavaScript

Aboneden aboneliğini bağlamasını isteyen iletişim kutusu örneği

Abonelik Bağlantısı'nda, PPID ile okuyucunun Google Hesabı arasında yeni bir ilişki oluşturmanın tek yolu istemci tarafı JavaScript'tir. Yapılandırılmış bir okuyucuya kendi hesaplarını bağlamasını isteyen bir iletişim kutusu abonelik. Okuyucu "Google ile devam et" düğmesini tıkladıktan sonra, bağlanacağı bir hesap seçebilir ve işlemi tamamladıktan sonra yapılandırılmış sayfaya geri gönderilebilir.

PPID'nin okuyucunun hesabıyla ilişkilendirilmesi, swg.js'teki linkSubscription yöntemi kullanılarak yapılır. Önceki hesaba benzer kullanım Özellik bağlama (örnek), yöntem, bir sözü iletmek yerine PPID.

Kod örnekleri

Bu istemci tarafı kod örnekleri, bağlantının nasıl başlatılacağını, geçerli bir yanıtın nasıl göründüğünü ve (isteğe bağlı olarak) analiz etkinliklerini dinlemek ve uygun şekilde yönlendirmek için swg.js eventManager'ın nasıl kullanılacağını gösterir.

Abonelik bağlama iletişim kutusunu başlat

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

Örnek yanıt

Başarıyla bağlanmış bir hesaptan alınan geçerli yanıtlarda kullanılan PPID bulunur ve boole success durumunu belirtir.

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

Abonelik Bağlama, üçüncü taraf çerezleri veya okuyucu için etkin bir Google oturumu. Bu esneklik, bağlantı deneyiminin yalnızca satın alma işleminden sonra değil, okuyucunun deneyiminde herhangi bir zamanda başlatılmasına olanak tanır. Okuyucu, o hesabı kullanan kişilere akışın bir parçası olarak bunu yapma fırsatı verilir.

İstemci tarafı örneği

<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 istemci kimliği oluşturun

Abonelik Bağlama için OAuth istemcisi gerekli değildir ancak OAuth istemcisi projeniz için yetkili alanların izin verilenler listesini yazmak amacıyla kullanılabilir. Yetkili alanlar, istemci tarafı JavaScript'inizin çağrı yapmasına izin verilen alanların listesidir. Yayınınızda, swg.js ile kullanılmak üzere Yayıncı Merkezi'nde yapılandırılmış bir OAuth istemci kimliği zaten mevcuttur.

Test

Abonelik Bağlamanın istemci tarafı uygulamasını test etmek için, kod, yetkili bir JavaScript kaynağına sahip bir sunucudan çalıştırılmalıdır.

  1. Üretim kullanımı için yetkili kaynaklar, yapılandırılmış OAuth istemciden veya Yayıncı Merkezi'ndeki yayın ayarlarındaki doğrulanmış alanlar listesinden gelebilir.
  2. Doğrulanamayan bir alan adıyla (ör. localhost) geliştirme veya hazırlık kullanımı için herkese açık olmayan bir sunucu) kullanıyorsanız alan, yapılandırılmış OAuth'ta listelenmelidir. İstemci’yi tıklayın.

Hataları giderme

İstemci taraflı JavaScript test edilirken en sık karşılaşılan sorun, JavaScript çalıştırılmaya çalışılırken 403 - Not Authorized hatası oluştu. Sorunu çözmek için Bunun için, JavaScript'i ya da kodu ana makinede çalıştırmanızın mümkün olduğunu bağlı OAuth istemcisinin yetkilendirilmiş js kaynakları.

Sonraki adım

İstemci tarafı JavaScript entegrasyonunu tamamladığınız için tebrik ederiz. Şimdi sunucu tarafı entegrasyonu bölümüne geçebilirsiniz. Bu, okuyucularınızın haklarıyla ilgili bilgileri senkronize etmek için gerekli bir adımdır. Google Takvim widget'ını sunucu tarafı UpdateReaderEntitlements işlevini uygulamak ve kullanmak doğru makalelerin doğru kişiler için vurgulandığından abone.