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}`,
  });
};

প্রতিক্রিয়া

এন্ডপয়েন্ট হয় একটি JSON বডি সহ একটি 200 প্রদান করবে যার মধ্যে লিঙ্ক করা সাবস্ক্রিপশনের 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 একটি পাঠকের জন্য তাদের PPID এর উপর ভিত্তি করে এনটাইটেলমেন্ট তৈরি এবং আপডেট করার জন্য ব্যবহার করা হয়।

এই নমুনা পেলোডটি PPID 6789 সহ পাঠককে The Daily Bugle-এর জন্য তিনটি পণ্য আইডিতে এনটাইটেলমেন্ট দেয়: dailybugle.com:basic , dailybugle.com:premium , এবং 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
  });
};

প্রতিক্রিয়া

একটি সফল প্যাচ অপারেশনের পরে, সংরক্ষিত entitlements অবজেক্টটি GetReaderEntitlements মতো একই বিন্যাসে ফেরত দেওয়া হবে।

ডিলিট রিডার

DeleteReader একজন প্রকাশককে ম্যানুয়ালি একটি লিঙ্ক করা সদস্যতা মুছে ফেলার অনুমতি দেয়। একটি DELETE অনুরোধ ব্যবহার করে, প্রকাশক একটি প্রকাশনা আইডি মুছে ফেলার জন্য একটি PPID জমা দেন।

DeleteReader কল করার আগে, আপনাকে অবশ্যই একটি খালি অ্যারে ( { "entitlements": [] } ) সহ UpdateReaderEntitlements ব্যবহার করে প্রথমে এনটাইটেলমেন্টগুলি মুছে ফেলতে হবে, অথবা যদি আপনি এনটাইটেলমেন্ট আছে এমন একটি পাঠক মুছে ফেলতে চান তাহলে ঐচ্ছিক force পরামিতিটিকে true হিসাবে সেট করুন৷ 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
  });
};

প্রতিক্রিয়া

একটি সফল মুছে ফেলা একটি খালি JSON বস্তু {} সহ একটি 200 প্রদান করে।

{}