Díky propojení předplatného je javascript na straně klienta jediným způsobem, jak vytvořit nové spojení mezi PPID
a účtem Google čtenáře. Na nakonfigurované stránce se čtenáři zobrazí dialogové okno s výzvou k propojení svého předplatného. Poté, co čtenář klikne na tlačítko „Pokračovat s Google“, může si vybrat účet, se kterým se propojí, a po dokončení bude odeslán zpět na nakonfigurovanou stránku.
Propojení předplatného nevyžaduje použití souborů cookie třetích stran ani aktivní relaci Google pro čtenáře. To flexibilně umožňuje spuštění propojování kdykoli v prostředí čtenáře, nejen po nákupu. Pokud čtenář není přihlášen k účtu Google, má k tomu příležitost v rámci toku.
Příklady kódu
Tyto příklady kódu na straně klienta ilustrují, jak iniciovat propojení, jak vypadá platná odpověď a (volitelně) jak používat swg.js
eventManager k naslouchání analytickým událostem a jejich odpovídajícímu směrování.
Propojit jednu publikaci
Přidružení PPID ke čtenářskému účtu pro jednu publikaci se provádí pomocí metody linkSubscription
v swg.js
. Použití je podobné předchozí funkci Propojení účtů ( příklad ), ale místo předání slibu metoda přijímá objekt obsahující PPID.
const result = await subscriptions.linkSubscription({publisherProvidedId:6789})
Ukázka odezvy ( rozhraní )
Platné odpovědi z úspěšně propojeného účtu obsahují jak PPID
použitý v odkazu, tak booleovský stav success
.
{
publisherProvidedId: 6789,
success: true
}
Seskupte více publikací
Pro propojení předplatného můžete spojit více publikací najednou předáním objektu jako argumentu funkci linkSubscriptions
. Vlastnost linkTo
je pole objektů, kde každý objekt představuje specifické publicationId
a jeho odpovídající publisherProvidedId
(PPID), které mají být propojeny.
const result = await subscriptions.linkSubscriptions({linkTo: [
{ publicationId: 'pubId1', publisherProvidedId: 'ppid1' },
{ publicationId: 'pubId2', publisherProvidedId: 'ppid2' },
…
]});
Ukázkové odpovědi ( rozhraní )
Pole anyFailure
(logická hodnota) a anySuccess
(logická hodnota) označují, zda došlo k nějakému selhání nebo úspěchu při pokusu o propojení předplatného balíčku. Pole links
obsahuje podrobnosti o výsledcích pro každou z publikací.
Úspěšné propojení se všemi publikacemi
{
"anyFailure": false,
"anySuccess": true,
"links": [{
"publicationId": "CAowqfCKCw",
"publisherProvidedId": "370720",
"success": true
},
{
"publicationId": "CAow5rTUCw",
"publisherProvidedId": "171385",
"success": true
}]
}
Nepropojení žádné z publikací
{
"anyFailure": true,
"anySuccess": true,
"links": [{
"publicationId": "CAowqfCKCw",
"publisherProvidedId": "370720",
"success": false
},
{
"publicationId": "CAow5rTUCw",
"publisherProvidedId": "171385",
"success": true
}]
}
Kompletní příklad na straně klienta pro 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>
Vytvořte ID klienta OAuth
Zatímco klient OAuth není vyžadován pro propojení předplatného, klienta OAuth lze použít k vytvoření seznamu povolených domén autorizovaných pro váš projekt. Autorizované domény jsou seznam domén, ze kterých může váš JavaScript na straně klienta volat. Vaše publikace již pravděpodobně má v Centru pro vydavatele nakonfigurované ID klienta OAuth pro použití se swg.js
.
- Pokud vaše volání javascriptu na straně klienta Linking Subscription pocházejí z dříve ověřeného názvu domény, není vyžadována žádná akce.
- Pokud se váš javascript spouští z nového názvu domény, postupujte podle pokynů pro konfiguraci ID klienta OAuth Předplatného s Googlem .
Testování
Aby bylo možné otestovat implementaci Subscription Linking na straně klienta, musí být kód spuštěn ze serveru s autorizovaným původem javascriptu.
- Pro produkční použití mohou autorizované zdroje pocházet buď z nakonfigurovaného klienta OAuth, nebo ze seznamu ověřených domén v nastavení publikace v Centru pro vydavatele.
- Pro vývojové nebo přípravné použití s neověřitelnou doménou (např. localhost nebo neveřejný server) musí být doména uvedena v nakonfigurovaném klientovi OAuth.
Odstraňte chyby
Nejčastějším problémem při testování javascriptu na straně klienta je obdržení chyby 403 - Not Authorized
při pokusu o spuštění javascriptu. Chcete-li to vyřešit, ujistěte se, že spouštíte javascript z ověřené domény v Centru pro vydavatele nebo že kód spouštíte na hostiteli, který je v autorizovaném zdroji js propojeného klienta OAuth.
Další krok
Gratulujeme k dokončení integrace JavaScriptu na straně klienta. Nyní můžete přejít na integraci na straně serveru . Toto je povinný krok k synchronizaci oprávnění vašich čtenářů. Když implementujete a používáte požadovanou funkci UpdateReaderEntitlements
na straně serveru, zajistíte, že budou zvýrazněny správné články pro správné odběratele.