Metody interfejsu API

GetReader

GetReader umożliwia wydawcy sprawdzenie, czy jeden z czytelników z identyfikatorem PPID połączył subskrypcję z Google. Wydawca wysyła GETżądanieGET, aby wyszukać identyfikator PPID należący do konkretnego identyfikatora publikacji.

Żądanie

API REST: GET request

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

Biblioteka klienta (Node.js)

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

Odpowiedź

Punkt końcowy zwróci kod 200 z treścią JSON zawierającą created_time połączonej subskrypcji lub błąd, jeśli nie zostanie znaleziony identyfikator PPID publikacji. Więcej informacji znajdziesz w sekcji dotyczącej błędów.

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

GetReaderEntitlements

GetReaderEntitlements umożliwia wydawcy wysyłanie zapytań o uprawnienia do identyfikatora PPID, który wcześniej podał. Wydawca wysyła żądanie GET, aby poprosić o uprawnienia, podając identyfikator PPID i identyfikator publikacji.

Żądanie

API REST: GET request

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

Biblioteka klienta (Node.js)

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

Odpowiedź

W przypadku żądania zakończonego pomyślnie format zwracanych danych jest identyczny z formatem używanym do przechowywania uprawnień w żądaniu UpdateReaderEntitlements PATCH.

{
  "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"
      }
  ]
}

W przypadku użytkowników, którzy nie mają uprawnień, ale mają połączony identyfikator PPID (np. uprawnienia, które wygasły i zostały usunięte), żądanie uprawnień zwróci pustą tablicę uprawnień w ramach standardowego obiektu uprawnień.

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

UpdateReaderEntitlements

UpdateReaderEntitlements służy do tworzenia i aktualizowania uprawnień czytelnika na podstawie jego identyfikatora PPID.

Ten przykładowy ładunek przyznaje czytelnikowi z identyfikatorem PPID 6789 uprawnienia do 3 identyfikatorów produktów w przypadku The Daily Bugle: dailybugle.com:basic, dailybugle.com:premiumdailybugle.com:deluxe. Gdy czytelnik 6789 użyje później usług Google do wyszukiwania i odkrywania, na liście „Z Twoich subskrypcji” pojawią się wszystkie odpowiednie wyniki z artykułów z witryny dailybugle.com oznaczonych dowolnym z tych identyfikatorów produktów.

Żądanie

API REST: PATCH request

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

Treść żądania: więcej informacji o obiekcie entitlements znajdziesz na stronie słownika.

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

Biblioteka klienta (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
  });
}

Odpowiedź

Po udanej operacji PATCH zostanie zwrócony zapisany obiekt entitlements w tym samym formacie co GetReaderEntitlements.

DeleteReader

DeleteReader umożliwia wydawcy ręczne usunięcie połączonej subskrypcji. Wydawca przesyła identyfikator PPID dla identyfikatora publikacji, który ma zostać usunięty, za pomocą DELETE.

Zanim wywołasz funkcję DeleteReader, musisz najpierw usunąć uprawnienia za pomocą funkcji UpdateReaderEntitlements z pustą tablicą ({ "entitlements": [] }) lub ustawić opcjonalny parametr force na true, jeśli chcesz usunąć czytelnika, który ma uprawnienia. Parametr force ma domyślnie wartość false.

Żądanie

API REST: DELETE request

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

Biblioteka klienta (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
  });
}

Odpowiedź

Pomyślne usunięcie zwraca kod 200 z pustym obiektem JSON {}.

{}