روش های API

GetReader

GetReader به یک ناشر اجازه می‌دهد تا تأیید کند که یکی از خوانندگانش با PPID شناخته شده اشتراک خود را به Google مرتبط کرده است. با استفاده از یک درخواست GET ، ناشر یک PPID متعلق به یک شناسه انتشارات خاص را جستجو می کند.

درخواست کنید

REST API: درخواست GET

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

کتابخانه مشتری (Node.js)

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

پاسخ

نقطه پایانی یا یک عدد 200 با بدنه JSON حاوی created_time اشتراک پیوند داده شده را برمی‌گرداند، یا اگر PPID برای انتشار پیدا نشود، خطایی خواهد داشت. برای اطلاعات بیشتر به بخش خطاها مراجعه کنید.

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

GetReaderEntitlements

GetReaderEntitlements به ناشر اجازه می دهد تا برای یک PPID که قبلاً ناشر ارائه کرده است، درخواست کند. با استفاده از درخواست GET، ناشر با ارائه یک PPID و شناسه انتشار، حقوق را درخواست می کند.

درخواست کنید

REST API: درخواست GET

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

کتابخانه مشتری (Node.js)

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

پاسخ

برای یک درخواست موفقیت آمیز، فرمت بازگشت با فرمتی که برای ذخیره حقوق با درخواست 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"
      }
  ]
}

برای کاربرانی که حق ندارند، اما دارای یک PPID مرتبط هستند (به عنوان مثال، حقی که منقضی شده و پاک شده است)، یک درخواست حق، یک آرایه حقوقی خالی را به عنوان بخشی از شی حقوقی استاندارد برمی گرداند.

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

UpdateReaderEntitlements

UpdateReaderEntitlements برای ایجاد و به روز رسانی حقوق برای یک خواننده، بر اساس PPID آنها استفاده می شود.

This sample payload grants the reader with PPID 6789 entitlements to three Product IDs for The Daily Bugle: dailybugle.com:basic , dailybugle.com:premium , and dailybugle.com:deluxe . هنگامی که خواننده 6789 متعاقباً از سطوح Google برای جستجو و کاوش استفاده می‌کند، فهرست «از اشتراک‌های شما» هر نتیجه مرتبطی را از مقالات dailybugle.com با هر یک از این شناسه‌های محصول نشان می‌دهد.

درخواست کنید

REST API: درخواست PATCH

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

بدنه درخواست: برای اطلاعات بیشتر در مورد موضوع entitlements ، به صفحه واژه نامه مراجعه کنید.

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

کتابخانه مشتری (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
  });
};

پاسخ

پس از یک عملیات PATCH موفقیت آمیز، شیء entitlements ذخیره شده با همان قالب GetReaderEntitlements برگردانده می شود.

DeleteReader

DeleteReader به ناشر اجازه می دهد تا اشتراک پیوند داده شده را به صورت دستی حذف کند. با استفاده از درخواست DELETE ، ناشر یک PPID برای حذف شناسه انتشار ارسال می کند.

Before calling DeleteReader , you must either delete entitlements first using UpdateReaderEntitlements with an empty array ( { "entitlements": [] } ), or set the optional force parameter to true if you need to delete a reader that has entitlements. پارامتر force پیش فرض false .

درخواست کنید

REST API: درخواست را DELETE

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

کتابخانه مشتری (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
  });
};

پاسخ

یک حذف موفق یک 200 را با یک شی JSON خالی {} برمی گرداند.

{}