বিজ্ঞপ্তি সাব-API ওভারভিউ

আপনার Merchant Center অ্যাকাউন্টে ডেটা পরিবর্তন হলে পুশ বিজ্ঞপ্তি পেতে, আপনি বিজ্ঞপ্তি সাব-API ব্যবহার করতে পারেন। পরিবর্তন শনাক্ত করার জন্য API-কে পর্যায়ক্রমে পোল করার পরিবর্তে, আপনি রিয়েল-টাইম ইভেন্ট ফিডে সাবস্ক্রাইব করতে পারেন যা আপনার কনফিগার করা HTTPS এন্ডপয়েন্টে সরাসরি ডেলিভার করা হয়।

বিজ্ঞপ্তি সাব-API নিম্নলিখিত বিষয়ের জন্য বিজ্ঞপ্তি পাঠাতে সাহায্য করে:

  • প্রোডাক্ট স্ট্যাটাসে হওয়া পরিবর্তন: আপনার লিঙ্ক করা যেকোনও অ্যাকাউন্ট বা সাব-অ্যাকাউন্ট জুড়ে কোনও প্রোডাক্টের অনুমোদনের স্ট্যাটাস পরিবর্তন হলে (যেমন, কোনও প্রোডাক্ট অনুমোদিত বা অননুমোদিত হলে) রিয়েল-টাইম সতর্কতা পান।
  • অ্যাকাউন্ট পরিষেবা সংক্রান্ত পরিবর্তন: কোনও AccountService রিসোর্স তৈরি, আপডেট বা মুছে দেওয়া হলে (যেমন, অ্যাকাউন্ট পরিষেবা সংক্রান্ত সম্পর্ক তৈরি, পরিবর্তন বা সরিয়ে দেওয়া হলে) রিয়েল-টাইম সতর্কতা পান।

প্রয়োজনীয় শর্ত ও কলব্যাক URI সেট-আপ

পুশ বিজ্ঞপ্তি পেতে, আপনাকে অবশ্যই একটি callBackUri প্রদান করতে হবে। আপনার কলব্যাক URI-কে নিম্নলিখিত প্রয়োজনীয়তা পূরণ করতে হবে:

  • এটি অবশ্যই সর্বজনীনভাবে অ্যাক্সেসযোগ্য HTTPS অ্যাড্রেস হতে হবে এবং স্বীকৃত সার্টিফিকেট প্রদানকারী কর্তৃপক্ষের দ্বারা স্বাক্ষরিত একটি বৈধ SSL সার্টিফিকেট থাকতে হবে।
  • Content-Type হেডার application/json-এ সেট করা থাকলে HTTP POST অনুরোধ গ্রহণ করতে হবে।
  • বিজ্ঞপ্তিটি যে পাওয়া গেছে তা স্বীকার করতে নিম্নলিখিত HTTP স্ট্যাটাস কোডগুলির মধ্যে একটি অবশ্যই ফেরত দিতে হবে:

    • 102
    • 200
    • 201
    • 202
    • 204

আপনি একাধিক সাবস্ক্রিপশনের জন্য একই কলব্যাক URI ব্যবহার করতে পারবেন। একটি এন্ডপয়েন্টে লোড কমাতে, প্রতিটি উন্নত অ্যাকাউন্ট ও ইভেন্টের ধরনের জন্য একটি অনন্য কলব্যাক URI ব্যবহার করুন।

সদস্যতা পরিচালনা করুন

বিজ্ঞপ্তি সাব-API, বিজ্ঞপ্তি কনফিগারেশন তৈরি, তালিকাভুক্ত, ফিরিয়ে আনা, আপডেট ও মুছে ফেলার পদ্ধতি প্রদান করে।

সাবস্ক্রিপশন তৈরি করা

আপনি যে ধরনের ইভেন্ট পেতে চান তার উপর নির্ভর করে সাবস্ক্রিপশন তৈরি করা হয়। প্রতিটি ইভেন্টের ধরনের জন্য আলাদা কনফিগারেশন ফিল্ড প্রয়োজন এবং আলাদা পে-লোড স্ট্রাকচার প্রদান করে।

কীভাবে সাবস্ক্রিপশন তৈরি করতে হয় এবং প্রতিটি ইভেন্টের ধরনের জন্য স্যাম্পেল অনুরোধ দেখতে হয় তা জানতে, সংশ্লিষ্ট নির্দেশিকা দেখুন:

সাবস্ক্রিপশনের তালিকা তৈরি করা হচ্ছে

কোনও অ্যাকাউন্টের জন্য সব বিজ্ঞপ্তি সাবস্ক্রিপশনের তালিকা পেতে, notificationsubscriptions সংগ্রহে একটি GET অনুরোধ পাঠান:

GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions

সাবস্ক্রিপশন ফিরিয়ে আনা

নির্দিষ্ট সাবস্ক্রিপশনের বিবরণ পেতে, সাবস্ক্রিপশনের রিসোর্স নাম ব্যবহার করুন:

GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}

সাবস্ক্রিপশন আপডেট করা

আগে থেকে থাকা সাবস্ক্রিপশনের জন্য কলব্যাক URI আপডেট করতে, update_mask সহ PATCH অনুরোধ পাঠান যেখানে আপডেট করার জন্য ফিল্ড উল্লেখ করা থাকবে:

PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
  "callBackUri": "https://example.com/updated-callback"
}

সাবস্ক্রিপশন মুছে ফেলা

বিজ্ঞপ্তি পাওয়া বন্ধ করতে, সাবস্ক্রিপশন মুছে দিন:

DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}

বিজ্ঞপ্তি ডিকোড করুন

কোনও ইভেন্ট ঘটলে, Google আপনার রেজিস্টার করা callBackUri-এ বিজ্ঞপ্তি পাঠায়। পুশ বিজ্ঞপ্তি JSON এনভেলপে আসে, যার মধ্যে base64-এনকোড করা data পেলোড থাকে:

{"message":{"data":"{base64_encoded_string}"}}

JSON ইভেন্ট পেলোড অ্যাক্সেস করতে ডেটা স্ট্রিং ডিকোড করুন। নিম্নলিখিত Spring Boot কন্ট্রোলার স্যাম্পেল থেকে পুশ বিজ্ঞপ্তি কীভাবে পাবেন ও ডিকোড করবেন তা জানতে পারবেন:

@RestController
public class ExampleController {
@RequestMapping(value = "/push",
  method = RequestMethod.POST,
  consumes = {"application/json"},
  produces = {"text/plain"})
  @ResponseStatus(HttpStatus.OK)
  public void handleNotification(@RequestBody String message) {
        JSONObject jsonObject = new JSONObject(message);
        JSONObject jsonMessage = jsonObject.getJSONObject("message");
        String encodedData = jsonMessage.getString("data");
        byte[] decodedBytes = Base64.getDecoder().decode(encodedData);
        String decodedPayload = new String(decodedBytes);
        // Process decodedPayload according to the registered event type
  }
}

পরবর্তী ধাপ

সাবস্ক্রিপশন কনফিগার করতে এবং নির্দিষ্ট ইভেন্টের জন্য ডিকোড করা পেলোড ম্যানেজ করতে, দেখুন: