Méthodes d'API

GetReader

GetReader permet à un éditeur de vérifier si l'un de ses lecteurs avec un PPID connu a associé son abonnement à Google. À l'aide d'une requête GET, l'éditeur interroge un PPID appartenant à un ID de publication particulier.

Requête

API REST : requête GET

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

Bibliothèque cliente (Node.js)

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

Réponse

Le point de terminaison renvoie un code 200 avec un corps JSON contenant le created_time de l'abonnement associé, ou une erreur si aucun PPID n'a été trouvé pour la publication. Pour en savoir plus, consultez la section Erreurs.

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

GetReaderEntitlements

GetReaderEntitlements permet à un éditeur d'interroger les droits d'accès pour un PPID qu'il a précédemment fourni. À l'aide d'une requête GET, l'éditeur demande les droits d'accès en fournissant un PPID et un ID de publication.

Requête

API REST : requête GET

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

Bibliothèque cliente (Node.js)

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

Réponse

Si une requête aboutit, le format renvoyé est identique à celui utilisé pour stocker les droits d'accès avec la requête 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"
      }
  ]
}

Pour les utilisateurs qui ne disposent pas de droits d'accès, mais qui possèdent un PPID associé (par exemple, un droit d'accès qui a expiré et qui a été supprimé définitivement), une requête de droits d'accès renvoie un tableau correspondant vide dans l'objet Entitlements standard.

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

UpdateReaderEntitlements

UpdateReaderEntitlements permet de créer et de mettre à jour les droits d'accès d'un lecteur en fonction de son PPID.

Cet exemple de charge utile accorde au lecteur avec le PPID 6789 des droits d'accès à trois ID produit pour The Daily Bugle : dailybugle.com:basic, dailybugle.com:premium et dailybugle.com:deluxe. Lorsque le lecteur 6789 utilise ensuite les surfaces Google pour la recherche et Discover, la liste "Source : vos abonnements" affiche tous les résultats pertinents des articles issus de dailybugle.com qui sont associés à l'un de ces ID produit.

Requête

API REST : requête PATCH

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

Corps de la requête : pour en savoir plus sur l'objet entitlements, consultez la page du glossaire.

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

Bibliothèque cliente (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
  });
};

Réponse

Lorsqu'une opération PATCH réussit, l'objet entitlements enregistré est renvoyé, au même format que GetReaderEntitlements.

DeleteReader

DeleteReader permet à un éditeur de supprimer manuellement un abonnement associé. À l'aide d'une requête DELETE, l'éditeur envoie un PPID pour qu'un ID de publication soit supprimé.

Avant d'appeler DeleteReader, vous devez d'abord supprimer les droits d'accès à l'aide de UpdateReaderEntitlements avec un tableau vide ({ "entitlements": [] }), ou définir le paramètre facultatif force sur true si vous devez supprimer un lecteur qui dispose de droits d'accès. Le paramètre force est défini par défaut sur false.

Requête

API REST : requête DELETE

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

Bibliothèque cliente (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
  });
};

Réponse

Une suppression réussie renvoie un code 200 avec un objet JSON vide {}.

{}