Classroom API-এ পুশ বিজ্ঞপ্তি

ক্লাসরুমে ডেটা পরিবর্তন হলে বিজ্ঞপ্তি পেতে আপনি Registrations সংগ্রহের পদ্ধতিগুলি ব্যবহার করতে পারেন।

এই নিবন্ধটি কীভাবে পুশ বিজ্ঞপ্তিগুলি গ্রহণ করা শুরু করবেন তার সাধারণ নির্দেশাবলী সহ একটি ধারণাগত ওভারভিউ প্রদান করে৷

ক্লাসরুম পুশ বিজ্ঞপ্তিগুলির ওভারভিউ

ক্লাসরুম এপিআই পুশ নোটিফিকেশন ফিচারটি ক্লাসরুম এপিআই ব্যবহার করে অ্যাপ্লিকেশানগুলিকে ক্লাসরুমে ডেটা পরিবর্তন হলে বিজ্ঞপ্তির জন্য সদস্যতা নিতে দেয়। বিজ্ঞপ্তিগুলি একটি ক্লাউড পাব/সাব বিষয়ে বিতরণ করা হয়, সাধারণত পরিবর্তনের কয়েক মিনিটের মধ্যে।

পুশ বিজ্ঞপ্তিগুলি পেতে, আপনাকে একটি ক্লাউড পাব/সাব বিষয় সেট আপ করতে হবে এবং যখন আপনি বিজ্ঞপ্তিগুলির উপযুক্ত ফিডের জন্য একটি নিবন্ধন তৈরি করবেন তখন সেই বিষয়ের নাম প্রদান করতে হবে৷

নীচে এই ডকুমেন্টেশনে ব্যবহৃত মূল ধারণাগুলির সংজ্ঞা দেওয়া হল:

  • একটি গন্তব্য হল এমন একটি জায়গা যেখানে বিজ্ঞপ্তি পাঠানো হয়।
  • একটি ফিড হল এক ধরণের বিজ্ঞপ্তি যা একটি তৃতীয় পক্ষের অ্যাপ্লিকেশন সদস্যতা নিতে পারে৷ উদাহরণস্বরূপ, "কোর্স 1234 এর জন্য তালিকা পরিবর্তন"।
  • একটি নিবন্ধন হল একটি নির্দিষ্ট ফিড থেকে একটি গন্তব্যে বিজ্ঞপ্তি সরবরাহ করার জন্য Classroom API-এর একটি নির্দেশ।

একবার আপনি একটি ফিডের জন্য একটি নিবন্ধন তৈরি করলে, সেই নিবন্ধনের ক্লাউড পাব/সাব বিষয়টি মেয়াদ শেষ না হওয়া পর্যন্ত সেই ফিড থেকে বিজ্ঞপ্তিগুলি পায়৷ আপনার নিবন্ধন এক সপ্তাহ স্থায়ী হয়, কিন্তু আপনি registrations.create() এ অভিন্ন অনুরোধ করে মেয়াদ শেষ হওয়ার আগে যেকোন সময়ে এটি বাড়িয়ে দিতে পারেন।

আপনার ক্লাউড পাব/সাব বিষয় শুধুমাত্র সম্পদ সম্পর্কে বিজ্ঞপ্তি পায় যা আপনি একটি নিবন্ধন তৈরি করার সময় আপনার সরবরাহ করা শংসাপত্রগুলির সাথে দেখতে পারেন। উদাহরণ স্বরূপ, যদি ব্যবহারকারী আপনার আবেদন থেকে অনুমতি প্রত্যাহার করে বা একজন শিক্ষক হিসাবে অপসারিত হয়, তাহলে বিজ্ঞপ্তিগুলি আরও বেশি সময় বিতরণ করা হয়।

ফিডের প্রকারভেদ

Classroom API বর্তমানে তিন ধরনের ফিড অফার করে:

  • প্রতিটি ডোমেনে ডোমেন ফিডের জন্য একটি রোস্টার পরিবর্তন রয়েছে, যা শিক্ষার্থী এবং শিক্ষকরা সেই ডোমেনে কোর্সে যোগদান এবং ছেড়ে যাওয়ার সময় বিজ্ঞপ্তি প্রকাশ করে।
  • প্রতিটি কোর্সে কোর্স ফিডের জন্য একটি রোস্টার পরিবর্তন রয়েছে, যা শিক্ষার্থী এবং শিক্ষকরা সেই কোর্সে যোগদান এবং কোর্স ছেড়ে যাওয়ার সময় বিজ্ঞপ্তি প্রকাশ করে।
  • প্রতিটি কোর্সে কোর্স ফিডের জন্য একটি কোর্স কাজের পরিবর্তন রয়েছে, যা সেই কোর্সে কোনও কোর্সের কাজ বা ছাত্র জমা দেওয়ার বিষয়গুলি তৈরি বা সংশোধন করা হলে বিজ্ঞপ্তি প্রকাশ করে।

একটি ক্লাউড পাব/সাব বিষয় সেট আপ করা হচ্ছে

ক্লাউড পাব/সাব বিষয়গুলিতে বিজ্ঞপ্তিগুলি বিতরণ করা হয়৷ ক্লাউড পাব/সাব থেকে, আপনি একটি ওয়েব হুকে অথবা একটি সাবস্ক্রিপশন এন্ডপয়েন্ট পোলিং করে বিজ্ঞপ্তি পেতে পারেন।

একটি ক্লাউড পাব/সাব বিষয় সেট আপ করতে, আপনাকে নিম্নলিখিতগুলি করতে হবে:

  1. নিশ্চিত করুন যে আপনি ক্লাউড পাব/সাব পূর্বশর্তগুলি পূরণ করেছেন।
  2. একটি ক্লাউড পাব/সাব ক্লায়েন্ট সেট আপ করুন
  3. ক্লাউড পাব/সাব মূল্য পর্যালোচনা করুন এবং আপনার বিকাশকারী কনসোল প্রকল্পের জন্য বিলিং সক্ষম করুন৷
  4. বিকাশকারী কনসোলে একটি ক্লাউড পাব/সাব বিষয় তৈরি করুন (সবচেয়ে সহজ), কমান্ড লাইন টুলের মাধ্যমে (সাধারণ প্রোগ্রামেটিক ব্যবহারের জন্য) বা ক্লাউড পাব/সাব API ব্যবহার করে। মনে রাখবেন যে ক্লাউড পাব/সাব শুধুমাত্র সীমিত সংখ্যক বিষয়ের অনুমতি দেয় , তাই আপনার সমস্ত বিজ্ঞপ্তি পাওয়ার জন্য একটি বিষয় ব্যবহার করা নিশ্চিত করে যে আপনার অ্যাপ্লিকেশন জনপ্রিয় হয়ে গেলে আপনি স্কেলিং সমস্যাগুলিকে আঘাত করবেন না।

  5. ক্লাউড পাব/সাব-এ একটি সাবস্ক্রিপশন তৈরি করুন , ক্লাউড পাব/সাবকে কীভাবে আপনার বিজ্ঞপ্তিগুলি সরবরাহ করবেন তা জানাতে।

  6. অবশেষে, পুশ বিজ্ঞপ্তিগুলির জন্য নিবন্ধন করার আগে, আপনাকে পুশ বিজ্ঞপ্তি পরিষেবা অ্যাকাউন্ট ( classroom-notifications@system.gserviceaccount.com ) আপনার বিষয়ে প্রকাশ করার অনুমতি দিতে হবে।

দ্রষ্টব্য: আপনি যদি আপনার ক্লাউড পাব/সাব বিষয়ে প্রকাশ করার জন্য পুশ নোটিফিকেশন পরিষেবা অ্যাকাউন্টের অনুমতি দেন, যে ব্যবহারকারীরা আপনার ডেভেলপার কনসোল প্রকল্প থেকে অনুরোধ করতে পারে তারা এটির উপস্থিতি নির্ধারণ করতে এবং এতে বিজ্ঞপ্তিগুলির জন্য নিবন্ধন করতে সক্ষম হবে৷ অনেক অ্যাপ্লিকেশন ক্লায়েন্ট সাইডে OAuth ক্লায়েন্ট আইডি সঞ্চয় করে, তাই শেষ-ব্যবহারকারীরা আপনার বিকাশকারী কনসোল প্রকল্প থেকে অনুরোধ করতে সক্ষম হতে পারে। যদি এটি আপনার ক্ষেত্রে প্রযোজ্য হয়, এবং আপনি শেষ-ব্যবহারকারীরা আপনার ক্লাউড পাব/সাব বিষয়ে অবাঞ্ছিত বিজ্ঞপ্তি পাঠানোর বিষয়ে উদ্বিগ্ন হন বা আপনি পুশ বিজ্ঞপ্তিগুলির জন্য যে ক্লাউড পাব/সাব বিষয়গুলি ব্যবহার করেন তার নামগুলি জেনে থাকেন, তাহলে আপনাকে একটি থেকে পুশ বিজ্ঞপ্তিগুলির জন্য নিবন্ধন করার কথা বিবেচনা করা উচিত বিভিন্ন বিকাশকারী কনসোল প্রকল্প।

বিজ্ঞপ্তির জন্য আপনার আবেদন নিবন্ধন করুন

ক্লাসরুম এপিআই পুশ বিজ্ঞপ্তি পরিষেবা অ্যাকাউন্ট প্রকাশ করতে পারে এমন একটি বিষয় পেয়ে গেলে, আপনি registrations.create() পদ্ধতি ব্যবহার করে বিজ্ঞপ্তির জন্য নিবন্ধন করতে পারেন। registrations.create() পদ্ধতি প্রমাণ করে যে প্রদত্ত ক্লাউড পাব/সাব বিষয় পুশ বিজ্ঞপ্তি পরিষেবা অ্যাকাউন্টের মাধ্যমে পৌঁছানো যেতে পারে। পদ্ধতিটি ব্যর্থ হয় যদি পুশ বিজ্ঞপ্তি পরিষেবা অ্যাকাউন্ট বিষয়টিতে পৌঁছাতে না পারে; উদাহরণস্বরূপ, যদি বিষয়টি বিদ্যমান না থাকে বা আপনি এটিকে সেই বিষয়ে প্রকাশের অনুমতি না দেন।

অনুমোদন

Classroom API-তে সমস্ত কলের মতো, registrations.create() এ কলগুলিকে অবশ্যই একটি অনুমোদন টোকেন দিয়ে অনুমোদিত হতে হবে । এই প্রমাণীকরণ টোকেনে অবশ্যই পুশ নোটিফিকেশন স্কোপ ( https://www.googleapis.com/auth/classroom.push-notifications ) এবং যে কোন স্কোপের তথ্য পাঠানো হচ্ছে তা দেখার জন্য প্রয়োজন।

  • রোস্টার পরিবর্তন ফিডের জন্য, এর অর্থ হল রোস্টার স্কোপ বা (আদর্শভাবে) এর শুধুমাত্র-পঠনযোগ্য বৈকল্পিক ( https://www.googleapis.com/auth/classroom.rosters.readonly বা https://www.googleapis.com/auth/classroom.rosters )।
  • কোর্স কাজের পরিবর্তনের ফিডগুলির জন্য, এর অর্থ কোর্স কাজের সুযোগের "ছাত্র" সংস্করণগুলি বা (আদর্শভাবে) এটির একমাত্র পাঠযোগ্য রূপ ( https://www.googleapis.com/auth/classroom.coursework.students.readonly বা https://www.googleapis.com/auth/classroom.coursework.students )।

বিজ্ঞপ্তিগুলি বিতরণ করার জন্য, অ্যাপ্লিকেশনটিকে প্রয়োজনীয় সুযোগ সহ অনুমোদিত ব্যবহারকারীর কাছ থেকে একটি OAuth অনুদান ধরে রাখতে হবে। ব্যবহারকারী অ্যাপ্লিকেশনটি সংযোগ বিচ্ছিন্ন করলে, বিজ্ঞপ্তিগুলি বন্ধ হয়ে যায়। উল্লেখ্য যে বর্তমানে, ডোমেইন-ওয়াইড অথরিটির প্রতিনিধি এই উদ্দেশ্যে সমর্থিত নয়। আপনি যদি শুধুমাত্র ডোমেন-ব্যাপী অর্পিত অথরিটি ব্যবহার করে বিজ্ঞপ্তিগুলির জন্য নিবন্ধন করার চেষ্টা করেন, তাহলে আপনি একটি @MissingGrant ত্রুটি পাবেন৷

বিজ্ঞপ্তি গ্রহণ করা হচ্ছে

বিজ্ঞপ্তিগুলি JSON-এর সাথে এনকোড করা হয়েছে এবং এতে রয়েছে:

  • পরিবর্তিত সম্পদ ধারণকারী সংগ্রহের নাম। রোস্টার পরিবর্তন সম্পর্কে বিজ্ঞপ্তির জন্য, এটি হয় courses.students বা courses.teachers । কোর্স কাজের পরিবর্তনের জন্য, এটি হয় courses.courseWork বা courses.courseWork.studentSubmissions
  • একটি মানচিত্রে পরিবর্তিত সম্পদের শনাক্তকারী। এই মানচিত্রটি উপযুক্ত সংস্থান get পদ্ধতির সাথে আর্গুমেন্টগুলিকে মেলানোর জন্য ডিজাইন করা হয়েছে। রোস্টার পরিবর্তন সম্পর্কে বিজ্ঞপ্তির জন্য, courseId এবং userId ক্ষেত্রগুলি পূরণ করা হবে, এবং courses.students.get() বা courses.teachers.get() এ অপরিবর্তিত পাঠানো যেতে পারে। একইভাবে, courses.courseWork সংগ্রহে পরিবর্তনের courseId এবং id ক্ষেত্র থাকবে যা courses.courseWork.get() এ অপরিবর্তিত পাঠানো যেতে পারে এবং courses.courseWork.studentSubmissions সংগ্রহে পরিবর্তনের courseId , courseWorkId , এবং id ক্ষেত্র থাকবে যা হতে পারে courses.courseWork.studentSubmissions.get() এ অপরিবর্তিত পাঠানো হয়েছে।

নিম্নলিখিত কোড স্নিপেট একটি নমুনা বিজ্ঞপ্তি প্রদর্শন করে:

{
  "collection": "courses.students",
  "eventType": "CREATED",
  "resourceId": {
    "courseId": "12345",
    "userId": "45678"
  }
}

বিজ্ঞপ্তিতে একটি registrationId মেসেজ অ্যাট্রিবিউটও থাকে, যার মধ্যে রেজিস্ট্রেশনের শনাক্তকারী থাকে যা বিজ্ঞপ্তির কারণ হয়, যা registrations.delete() এর সাথে ব্যবহার করা যেতে পারে বিজ্ঞপ্তি থেকে নিবন্ধনমুক্ত করতে।