Metody API

GetReader

GetReader umožňuje vydavateli ověřit, zda jeden z jeho čtenářů se známým PPID propojil své předplatné se společností Google. Pomocí požadavku GET se vydavatel dotáže na PPID patřící ke konkrétnímu ID publikace.

Žádost

REST API: požadavek GET

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid

Klientská knihovna (Node.js)

async function getReader(ppid) {
  const publicationId = process.env.PUBLICATION_ID;
  return await client.publications.readers.get({
    name: `publications/${publicationId}/readers/${ppid}`,
  });
};

Odpověď

Koncový bod vrátí buď 200 s tělem JSON obsahujícím created_time propojeného předplatného, ​​nebo chybu, pokud není pro publikaci nalezeno žádné PPID. Další informace naleznete v části chyby .

{
  "name": "publications/CAowqfCKCw/readers/22553",
  "createTime": "2025-07-30T18:26:58.050224Z",
  "publicationId": "CAowqfCKCw",
  "ppid": "22553",
  "originatingPublicationId": "CAowqfCKCw"
}

GetReaderEntitlements

GetReaderEntitlements umožňuje vydavateli dotazovat se na nároky pro PPID, které vydavatel poskytl dříve. Pomocí požadavku GET vydavatel požaduje nároky poskytnutím PPID a ID publikace.

Žádost

REST API: požadavek GET

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid/entitlements

Klientská knihovna (Node.js)

async function getReaderEntitlements(ppid) {
  const publicationId = process.env.PUBLICATION_ID;
  return await client.publications.readers.getEntitlements({
    name: `publications/${publicationId}/readers/${ppid}/entitlements`
  });
};

Odpověď

Pro úspěšnou žádost je návratový formát identický s formátem používaným k ukládání nároků s požadavkem PATCH UpdateReaderEntitlements .

{
  "name": "publications/dailybugle.com/readers/6789/entitlements",
  "entitlements": [
      {
        "product_id": "dailybugle.com:basic",
        "subscription_token": "dnabhdufbwinkjanvejskenfw",
        "detail": "This is our basic plan",
        "expire_time": "2022-08-19T04:53:40+00:00"
      },
      {
        "product_id": "dailybugle.com:premium",
        "subscription_token": "wfwhddgdgnkhngfw",
        "detail": "This is our premium plan",
        "expire_time": "2022-07-19T04:53:40+00:00"
      },
      {
        "product_id": "dailybugle.com:deluxe",
        "subscription_token": "fefcbwinkjanvejfefw",
        "detail": "This is our deluxe plan",
        "expire_time": "2022-08-20T04:53:40+00:00"
      }
  ]
}

Pro uživatele, kteří nemají nároky, ale mají propojený PPID (například nárok, jehož platnost vypršela a byl vyčištěn), požadavek na nároky vrátí prázdné pole nároků jako součást objektu standardních nároků.

{
  "name": "publications/dailybugle.com/readers/6789/entitlements"
}

UpdateReaderEntitlements

UpdateReaderEntitlements se používá k vytváření a aktualizaci nároků pro čtenáře na základě jejich PPID.

Tato ukázka užitečného zatížení uděluje čtenáři s PPID 6789 oprávnění ke třem ID produktů pro The Daily Bugle: dailybugle.com:basic , dailybugle.com:premium a dailybugle.com:deluxe . Když čtenář 6789 následně použije platformy Google pro vyhledávání a objevování, seznam „Z vašich předplatných“ bude obsahovat všechny relevantní výsledky z článků dailybugle.com označených kterýmkoli z těchto ID produktů.

Žádost

REST API: požadavek PATCH

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid/entitlements

Tělo požadavku: Další informace o objektu entitlements naleznete na stránce glosáře .

{
  entitlements : [{
    product_id: `${publicationId}:basic`,
    subscription_token: 'abc1234',
    detail: 'This is our basic plan',
    expire_time: '2025-10-21T03:05:08.200564Z'
  }]
}

Klientská knihovna (Node.js)

async function updateReaderEntitlements(ppid) {
  const publicationId = process.env.PUBLICATION_ID;
  const requestBody = {
    entitlements : [{
      product_id: `${publicationId}:basic`,
      subscription_token: 'abc1234',
      detail: 'This is our basic plan',
      expire_time: '2025-10-21T03:05:08.200564Z'
    }]
  };
  return await client.publications.readers.updateEntitlements({
    name: `publications/${publicationId}/readers/${ppid}/entitlements`,
    requestBody
  });
};

Odpověď

Po úspěšné operaci PATCH bude vrácen uložený objekt entitlements ve stejném formátu jako GetReaderEntitlements .

DeleteReader

DeleteReader umožňuje vydavateli ručně odstranit propojené předplatné. Pomocí požadavku DELETE vydavatel odešle PPID pro ID publikace, které má být odstraněno.

Před voláním DeleteReader musíte buď nejprve odstranit nároky pomocí UpdateReaderEntitlements s prázdným polem ( { "entitlements": [] } ), nebo nastavit volitelný parametr force na true , pokud potřebujete odstranit čtečku, která má oprávnění. Parametr force má výchozí hodnotu false .

Žádost

REST API: požadavek DELETE

https://readerrevenuesubscriptionlinking.googleapis.com/v1/publications/publicationId/readers/ppid?force={boolean}

Klientská knihovna (Node.js)

async function deleteReader(ppid, forceDelete = false) {
  const publicationId = process.env.PUBLICATION_ID;
  return await client.publications.readers.delete({
    name: `publications/${publicationId}/readers/${ppid}`
    force: forceDelete
  });
};

Odpověď

Úspěšné odstranění vrátí 200 s prázdným objektem JSON {} .

{}