ফায়ারবেস ক্লাউড মেসেজিং HTTP প্রোটোকল

এই নথিটি Firebase ক্লাউড মেসেজিংয়ের মাধ্যমে আপনার অ্যাপ সার্ভার থেকে ক্লায়েন্ট অ্যাপে বার্তা পাঠাতে ব্যবহৃত HTTP সিনট্যাক্সের একটি রেফারেন্স প্রদান করে।

লিগ্যাসি HTTP প্রোটোকল ব্যবহার করার সময়, আপনার অ্যাপ সার্ভারকে অবশ্যই সমস্ত HTTP অনুরোধ এই শেষ পয়েন্টে নির্দেশ করতে হবে:

https://fcm.googleapis.com/fcm/send

উপলব্ধ পরামিতি এবং বিকল্পগুলি নিম্নলিখিত বিস্তৃত বিভাগে পড়ে:

ডাউনস্ট্রিম বার্তা সিনট্যাক্স

এই বিভাগটি ফায়ারবেস ক্লাউড মেসেজিং থেকে ডাউনস্ট্রিম বার্তা পাঠানো এবং HTTP প্রতিক্রিয়া ব্যাখ্যা করার জন্য সিনট্যাক্স দেয়।

ডাউনস্ট্রিম HTTP বার্তা (JSON)

নিম্নলিখিত টেবিলটি HTTP JSON বার্তাগুলির লক্ষ্য, বিকল্প এবং পেলোড তালিকাভুক্ত করে৷

সারণি 1. ডাউনস্ট্রিম HTTP বার্তাগুলির জন্য লক্ষ্য, বিকল্প এবং পেলোড (JSON)৷

প্যারামিটার ব্যবহার বর্ণনা
টার্গেট
to ঐচ্ছিক, স্ট্রিং

এই পরামিতি একটি বার্তা প্রাপক নির্দিষ্ট করে.

মানটি হতে পারে একটি ডিভাইসের রেজিস্ট্রেশন টোকেন, একটি ডিভাইস গ্রুপের বিজ্ঞপ্তি কী, অথবা একটি একক বিষয় (প্রিফিক্সড /topics/ এর সাথে)। একাধিক বিষয়ে পাঠাতে, condition প্যারামিটার ব্যবহার করুন।

registration_ids
ঐচ্ছিক, স্ট্রিং এর অ্যারে

এই প্যারামিটারটি একটি মাল্টিকাস্ট বার্তার প্রাপককে নির্দিষ্ট করে, একাধিক নিবন্ধন টোকেনে পাঠানো একটি বার্তা।

মানটি রেজিস্ট্রেশন টোকেনগুলির একটি অ্যারে হওয়া উচিত যেখানে মাল্টিকাস্ট বার্তা পাঠাতে হবে৷ অ্যারেতে কমপক্ষে 1টি এবং সর্বাধিক 1000টি নিবন্ধন টোকেন থাকতে হবে৷ একটি একক ডিভাইসে একটি বার্তা পাঠাতে, to প্যারামিটার ব্যবহার করুন।

মাল্টিকাস্ট বার্তাগুলি শুধুমাত্র HTTP JSON ফর্ম্যাট ব্যবহার করে অনুমোদিত৷

condition ঐচ্ছিক, স্ট্রিং

এই প্যারামিটার শর্তগুলির একটি যৌক্তিক অভিব্যক্তি নির্দিষ্ট করে যা বার্তা লক্ষ্য নির্ধারণ করে।

সমর্থিত শর্ত: বিষয়, বিষয়গুলিতে "'yourTopic' হিসাবে ফর্ম্যাট করা হয়েছে"। এই মান কেস-সংবেদনশীল।

সমর্থিত অপারেটর: && , || . প্রতি বিষয় বার্তার জন্য সর্বাধিক দুটি অপারেটর সমর্থিত।

notification_key
অবচয়
ঐচ্ছিক, স্ট্রিং

এই প্যারামিটারটি অবহেলিত। পরিবর্তে, বার্তা প্রাপকদের নির্দিষ্ট করতে to ব্যবহার করুন। একাধিক ডিভাইসে কীভাবে বার্তা পাঠাতে হয় সে সম্পর্কে আরও তথ্যের জন্য, আপনার প্ল্যাটফর্মের ডকুমেন্টেশন দেখুন।

অপশন
collapse_key ঐচ্ছিক, স্ট্রিং

এই প্যারামিটারটি বার্তাগুলির একটি গোষ্ঠী সনাক্ত করে (যেমন, collapse_key: "Updates Available" ) যেগুলি ভেঙে দেওয়া যেতে পারে, যাতে ডেলিভারি পুনরায় শুরু করার সময় শুধুমাত্র শেষ বার্তাটি পাঠানো হয়। যখন ডিভাইসটি অনলাইনে ফিরে আসে বা সক্রিয় হয়ে যায় তখন একই বার্তাগুলির অনেকগুলি পাঠানো এড়াতে এটির উদ্দেশ্য।

মনে রাখবেন যে বার্তাগুলি পাঠানো হবে তার কোন গ্যারান্টি নেই।

দ্রষ্টব্য: যেকোন সময়ে সর্বাধিক 4টি ভিন্ন ধস কী অনুমোদিত। এর মানে হল যে FCM একই সাথে প্রতি ক্লায়েন্ট অ্যাপে 4টি ভিন্ন বার্তা সংরক্ষণ করতে পারে। আপনি যদি এই সংখ্যাটি অতিক্রম করেন, তাহলে কোন গ্যারান্টি নেই যে 4টি পতন কী FCM রাখবে৷

priority ঐচ্ছিক, স্ট্রিং

বার্তার অগ্রাধিকার নির্ধারণ করে। বৈধ মান হল "স্বাভাবিক" এবং "উচ্চ।" Apple প্ল্যাটফর্মে, এগুলি APN-এর অগ্রাধিকার 5 এবং 10-এর সাথে মিলে যায়।

ডিফল্টরূপে, বিজ্ঞপ্তি বার্তাগুলি উচ্চ অগ্রাধিকারের সাথে পাঠানো হয়, এবং ডেটা বার্তাগুলি স্বাভাবিক অগ্রাধিকারের সাথে পাঠানো হয়। সাধারণ অগ্রাধিকার ক্লায়েন্ট অ্যাপের ব্যাটারি খরচ অপ্টিমাইজ করে এবং অবিলম্বে ডেলিভারির প্রয়োজন না হলে ব্যবহার করা উচিত। স্বাভাবিক অগ্রাধিকার সহ বার্তাগুলির জন্য, অ্যাপটি অনির্দিষ্ট বিলম্বের সাথে বার্তাটি পেতে পারে।

উচ্চ অগ্রাধিকারের সাথে একটি বার্তা পাঠানো হলে, এটি অবিলম্বে পাঠানো হয় এবং অ্যাপটি একটি বিজ্ঞপ্তি প্রদর্শন করতে পারে।

content_available ঐচ্ছিক, বুলিয়ান

Apple প্ল্যাটফর্মগুলিতে, APNs পেলোডে content-available উপস্থাপন করতে এই ক্ষেত্রটি ব্যবহার করুন৷ যখন একটি বিজ্ঞপ্তি বা বার্তা পাঠানো হয় এবং এটি true হিসাবে সেট করা হয়, তখন একটি নিষ্ক্রিয় ক্লায়েন্ট অ্যাপ জাগ্রত হয় এবং বার্তাটি APN-এর মাধ্যমে একটি নীরব বিজ্ঞপ্তি হিসাবে পাঠানো হয়, FCM এর মাধ্যমে নয়। মনে রাখবেন যে APN-এ নীরব বিজ্ঞপ্তিগুলি ডেলিভারির গ্যারান্টি দেওয়া হয় না, এবং ব্যবহারকারীর লো পাওয়ার মোড চালু করা, অ্যাপ থেকে জোর করে ছেড়ে দেওয়া ইত্যাদি বিষয়গুলির উপর নির্ভর করতে পারে। Android-এ, ডেটা মেসেজ অ্যাপটিকে ডিফল্টরূপে জাগিয়ে তোলে। Chrome এ, বর্তমানে সমর্থিত নয়।

mutable_content ঐচ্ছিক, JSON বুলিয়ান

Apple প্ল্যাটফর্মে, APNs পেলোডে mutable-content উপস্থাপন করতে এই ক্ষেত্রটি ব্যবহার করুন। যখন একটি বিজ্ঞপ্তি পাঠানো হয় এবং এটি true হিসাবে সেট করা হয়, তখন একটি বিজ্ঞপ্তি পরিষেবা অ্যাপ এক্সটেনশন ব্যবহার করে বিজ্ঞপ্তিটির বিষয়বস্তু প্রদর্শিত হওয়ার আগে সংশোধন করা যেতে পারে৷ এই প্যারামিটারটি Android এবং ওয়েবের জন্য উপেক্ষা করা হবে।

time_to_live ঐচ্ছিক, সংখ্যা

এই প্যারামিটারটি নির্দিষ্ট করে যে ডিভাইসটি অফলাইনে থাকলে কতক্ষণ (সেকেন্ডে) বার্তাটি FCM স্টোরেজে রাখা উচিত। সমর্থিত বেঁচে থাকার সর্বোচ্চ সময় হল 4 সপ্তাহ, এবং ডিফল্ট মান হল 4 সপ্তাহ৷ আরও তথ্যের জন্য, একটি বার্তার জীবনকাল সেট করা দেখুন।

restricted_package_
name
(শুধুমাত্র অ্যান্ড্রয়েড)
ঐচ্ছিক, স্ট্রিং এই প্যারামিটারটি অ্যাপ্লিকেশনটির প্যাকেজ নাম নির্দিষ্ট করে যেখানে বার্তাটি পাওয়ার জন্য নিবন্ধন টোকেনগুলি অবশ্যই মিলতে হবে৷
dry_run ঐচ্ছিক, বুলিয়ান

এই প্যারামিটার, true সেট করা হলে, ডেভেলপারদের প্রকৃতপক্ষে একটি বার্তা না পাঠিয়ে একটি অনুরোধ পরীক্ষা করার অনুমতি দেয়।

ডিফল্ট মান false .

পেলোড
data ঐচ্ছিক, বস্তু

এই প্যারামিটারটি বার্তার পেলোডের কাস্টম কী-মান জোড়া নির্দিষ্ট করে।

উদাহরণস্বরূপ, data:{"score":"3x1"}:

অ্যাপল প্ল্যাটফর্মে, যদি বার্তাটি APN-এর মাধ্যমে পাঠানো হয়, তবে এটি কাস্টম ডেটা ক্ষেত্রগুলিকে প্রতিনিধিত্ব করে। যদি এটি FCM-এর মাধ্যমে পাঠানো হয়, তাহলে এটি AppDelegate application:didReceiveRemoteNotification: এ মূল মান অভিধান হিসেবে উপস্থাপন করা হবে।

অ্যান্ড্রয়েডে, এর ফলে স্ট্রিং মান 3x1 সহ একটি অভিপ্রায় অতিরিক্ত নামে score হবে।

কীটি একটি সংরক্ষিত শব্দ ("থেকে", "বার্তা_প্রকার", বা "google" বা "gcm" দিয়ে শুরু হওয়া কোনো শব্দ) হওয়া উচিত নয়। এই টেবিলে সংজ্ঞায়িত কোন শব্দ ব্যবহার করবেন না (যেমন collapse_key )।

স্ট্রিং ধরনের মান সুপারিশ করা হয়. আপনাকে অবজেক্ট বা অন্যান্য নন-স্ট্রিং ডেটা টাইপের (যেমন, পূর্ণসংখ্যা বা বুলিয়ান) স্ট্রিং-এ মান রূপান্তর করতে হবে।

notification ঐচ্ছিক, বস্তু এই প্যারামিটারটি বিজ্ঞপ্তি পেলোডের পূর্বনির্ধারিত, ব্যবহারকারী-দৃশ্যমান কী-মান জোড়া নির্দিষ্ট করে। বিস্তারিত জানার জন্য বিজ্ঞপ্তি পেলোড সমর্থন দেখুন। বিজ্ঞপ্তি বার্তা এবং ডেটা বার্তা বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য, বার্তার প্রকারগুলি দেখুন৷ যদি একটি বিজ্ঞপ্তি পেলোড প্রদান করা হয়, অথবা একটি Apple ডিভাইসে একটি বার্তার জন্য content_available বিকল্পটি true হিসাবে সেট করা হয়, তাহলে বার্তাটি APN-এর মাধ্যমে পাঠানো হয়, অন্যথায় এটি FCM এর মাধ্যমে পাঠানো হয়।

বিজ্ঞপ্তি পেলোড সমর্থন

নিম্নলিখিত সারণীগুলি iOS এবং Android এর জন্য বিজ্ঞপ্তি বার্তা তৈরি করার জন্য উপলব্ধ পূর্বনির্ধারিত কীগুলির তালিকা করে৷

টেবিল 2a. iOS — বিজ্ঞপ্তি বার্তাগুলির জন্য কী

প্যারামিটার ব্যবহার বর্ণনা
title ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির শিরোনাম।

এই ক্ষেত্রটি ফোন এবং ট্যাবলেটে দৃশ্যমান নয়৷

body ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির মূল অংশের পাঠ্য।

sound ঐচ্ছিক, স্ট্রিং

ডিভাইসটি নোটিফিকেশন পাওয়ার সময় বাজানোর শব্দ।

ক্লায়েন্ট অ্যাপের প্রধান বান্ডিলে বা অ্যাপের ডেটা কন্টেইনারের Library/Sounds ফোল্ডারে সাউন্ড ফাইল নির্দিষ্ট করে স্ট্রিং। আরও তথ্যের জন্য iOS বিকাশকারী লাইব্রেরি দেখুন।

badge ঐচ্ছিক, স্ট্রিং

হোম স্ক্রিনে অ্যাপ আইকনে ব্যাজের মান।

নির্দিষ্ট না থাকলে, ব্যাজ পরিবর্তন করা হয় না।

0 তে সেট করা হলে, ব্যাজটি সরানো হয়।

click_action ঐচ্ছিক, স্ট্রিং

ব্যবহারকারীর সাথে যুক্ত কর্ম বিজ্ঞপ্তিতে ক্লিক করুন।

APNs পেলোডের category সাথে মিলে যায়।

subtitle ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির সাবটাইটেল।

body_loc_key ঐচ্ছিক, স্ট্রিং

ব্যবহারকারীর বর্তমান স্থানীয়করণে বডি টেক্সট স্থানীয়করণ করতে ব্যবহার করার জন্য অ্যাপের স্ট্রিং সংস্থানগুলিতে বডি স্ট্রিংয়ের কী।

APNs পেলোডে loc-key সাথে মিলে যায়।

আরও তথ্যের জন্য পেলোড কী রেফারেন্স এবং আপনার দূরবর্তী বিজ্ঞপ্তিগুলির সামগ্রী স্থানীয়করণ দেখুন।

body_loc_args ঐচ্ছিক, স্ট্রিং হিসাবে JSON অ্যারে

ব্যবহারকারীর বর্তমান স্থানীয়করণে বডি টেক্সট স্থানীয়করণ করতে ব্যবহার করার জন্য body_loc_key এ বিন্যাস নির্দিষ্টকরণের জায়গায় ব্যবহার করা পরিবর্তনশীল স্ট্রিং মান।

APNs পেলোডে loc-args এর সাথে মিলে যায়।

আরও তথ্যের জন্য পেলোড কী রেফারেন্স এবং আপনার দূরবর্তী বিজ্ঞপ্তিগুলির সামগ্রী স্থানীয়করণ দেখুন।

title_loc_key ঐচ্ছিক, স্ট্রিং

ব্যবহারকারীর বর্তমান স্থানীয়করণে শিরোনাম পাঠ্যকে স্থানীয়করণ করতে ব্যবহার করার জন্য অ্যাপের স্ট্রিং সংস্থানগুলিতে শিরোনাম স্ট্রিংয়ের কী।

APN-এর পেলোডে title-loc-key এর সাথে মিলে যায়।

আরও তথ্যের জন্য পেলোড কী রেফারেন্স এবং আপনার দূরবর্তী বিজ্ঞপ্তিগুলির সামগ্রী স্থানীয়করণ দেখুন।

title_loc_args ঐচ্ছিক, স্ট্রিং হিসাবে JSON অ্যারে

শিরোনাম পাঠ্যকে ব্যবহারকারীর বর্তমান স্থানীয়করণে স্থানীয়করণ করতে ব্যবহার করতে title_loc_key এ বিন্যাস নির্দিষ্টকরণের জায়গায় ব্যবহার করা পরিবর্তনশীল স্ট্রিং মান।

APNs পেলোডে title-loc-args এর সাথে মিলে যায়।

আরও তথ্যের জন্য পেলোড কী রেফারেন্স এবং আপনার দূরবর্তী বিজ্ঞপ্তিগুলির সামগ্রী স্থানীয়করণ দেখুন।

টেবিল 2 খ. অ্যান্ড্রয়েড — বিজ্ঞপ্তি বার্তাগুলির জন্য কী

প্যারামিটার ব্যবহার বর্ণনা
title ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির শিরোনাম।

body ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির মূল অংশের পাঠ্য।

android_channel_id ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির চ্যানেল আইডি (Android O তে নতুন)।

এই চ্যানেল আইডি সহ কোনও বিজ্ঞপ্তি পাওয়ার আগে অ্যাপটিকে অবশ্যই এই চ্যানেল আইডি সহ একটি চ্যানেল তৈরি করতে হবে।

আপনি অনুরোধে এই চ্যানেল আইডি না পাঠালে বা প্রদত্ত চ্যানেল আইডিটি এখনও অ্যাপ তৈরি না করে থাকলে, FCM অ্যাপ ম্যানিফেস্টে উল্লেখ করা চ্যানেল আইডি ব্যবহার করে।

icon ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির আইকন।

অঙ্কনযোগ্য রিসোর্স myicon জন্য বিজ্ঞপ্তি আইকনটিকে myicon সেট করে। আপনি অনুরোধে এই কী না পাঠালে, FCM আপনার অ্যাপ ম্যানিফেস্টে নির্দিষ্ট করা লঞ্চার আইকন প্রদর্শন করে।

sound ঐচ্ছিক, স্ট্রিং

ডিভাইসটি নোটিফিকেশন পাওয়ার সময় বাজানোর শব্দ।

"default" বা অ্যাপে বান্ডিল করা সাউন্ড রিসোর্সের ফাইলের নাম সমর্থন করে। সাউন্ড ফাইল অবশ্যই /res/raw/ তে থাকবে।

tag ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তি ড্রয়ারে বিদ্যমান বিজ্ঞপ্তিগুলি প্রতিস্থাপন করতে ব্যবহৃত সনাক্তকারী৷

নির্দিষ্ট না থাকলে, প্রতিটি অনুরোধ একটি নতুন বিজ্ঞপ্তি তৈরি করে।

যদি নির্দিষ্ট করা থাকে এবং একই ট্যাগ সহ একটি বিজ্ঞপ্তি ইতিমধ্যেই দেখানো হচ্ছে, নতুন বিজ্ঞপ্তিটি বিজ্ঞপ্তি ড্রয়ারে বিদ্যমান একটিকে প্রতিস্থাপন করে।

color ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির আইকনের রঙ, #rrggbb ফর্ম্যাটে প্রকাশ করা হয়েছে।

click_action ঐচ্ছিক, স্ট্রিং

ব্যবহারকারীর সাথে যুক্ত কর্ম বিজ্ঞপ্তিতে ক্লিক করুন।

নির্দিষ্ট করা থাকলে, ব্যবহারকারী যখন বিজ্ঞপ্তিতে ক্লিক করেন তখন একটি ম্যাচিং ইনটেন্ট ফিল্টার সহ একটি কার্যকলাপ চালু হয়।

body_loc_key ঐচ্ছিক, স্ট্রিং

ব্যবহারকারীর বর্তমান স্থানীয়করণে বডি টেক্সট স্থানীয়করণ করতে ব্যবহার করার জন্য অ্যাপের স্ট্রিং সংস্থানগুলিতে বডি স্ট্রিংয়ের কী।

আরও তথ্যের জন্য স্ট্রিং সম্পদ দেখুন।

body_loc_args ঐচ্ছিক, স্ট্রিং হিসাবে JSON অ্যারে

ব্যবহারকারীর বর্তমান স্থানীয়করণে বডি টেক্সট স্থানীয়করণ করতে ব্যবহার করার জন্য body_loc_key এ বিন্যাস নির্দিষ্টকরণের জায়গায় ব্যবহার করা পরিবর্তনশীল স্ট্রিং মান।

আরও তথ্যের জন্য বিন্যাস এবং স্টাইলিং দেখুন।

title_loc_key ঐচ্ছিক, স্ট্রিং

ব্যবহারকারীর বর্তমান স্থানীয়করণে শিরোনাম পাঠ্যকে স্থানীয়করণ করতে ব্যবহার করার জন্য অ্যাপের স্ট্রিং সংস্থানগুলিতে শিরোনাম স্ট্রিংয়ের কী।

আরও তথ্যের জন্য স্ট্রিং সম্পদ দেখুন।

title_loc_args ঐচ্ছিক, স্ট্রিং হিসাবে JSON অ্যারে

শিরোনাম পাঠ্যকে ব্যবহারকারীর বর্তমান স্থানীয়করণে স্থানীয়করণ করতে ব্যবহার করতে title_loc_key এ বিন্যাস নির্দিষ্টকরণের জায়গায় ব্যবহার করা পরিবর্তনশীল স্ট্রিং মান।

আরও তথ্যের জন্য বিন্যাস এবং স্টাইলিং দেখুন।

টেবিল 2c. ওয়েব (জাভাস্ক্রিপ্ট) — বিজ্ঞপ্তি বার্তাগুলির জন্য কী

প্যারামিটার ব্যবহার বর্ণনা
title ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির শিরোনাম।

body ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির মূল অংশের পাঠ্য।

icon ঐচ্ছিক, স্ট্রিং

বিজ্ঞপ্তির আইকনের জন্য ব্যবহার করার জন্য URL।

click_action ঐচ্ছিক, স্ট্রিং

ব্যবহারকারীর সাথে যুক্ত কর্ম বিজ্ঞপ্তিতে ক্লিক করুন।

সমস্ত URL মানগুলির জন্য, HTTPS প্রয়োজন৷

ডাউনস্ট্রিম HTTP বার্তা (প্লেইন টেক্সট)

নিম্নোক্ত সারণীতে টার্গেট, অপশন এবং প্লেলোডের জন্য সিনট্যাক্স তালিকাভুক্ত করা হয়েছে।

সারণি 3. ডাউনস্ট্রিম প্লেইন টেক্সট HTTP বার্তাগুলির জন্য লক্ষ্য, বিকল্প এবং পেলোড।

প্যারামিটার ব্যবহার বর্ণনা
টার্গেট
registration_id প্রয়োজনীয়, স্ট্রিং

এই প্যারামিটারটি বার্তা গ্রহণকারী ক্লায়েন্ট অ্যাপস (রেজিস্ট্রেশন টোকেন) নির্দিষ্ট করে।

মাল্টিকাস্ট মেসেজিং (একাধিক রেজিস্ট্রেশন টোকেনে পাঠানো) শুধুমাত্র HTTP JSON ফর্ম্যাট ব্যবহার করে অনুমোদিত।

অপশন
collapse_key ঐচ্ছিক, স্ট্রিং বিস্তারিত জানার জন্য টেবিল 1 দেখুন।
time_to_live ঐচ্ছিক, সংখ্যা বিস্তারিত জানার জন্য টেবিল 1 দেখুন।
restricted_package_name ঐচ্ছিক, স্ট্রিং বিস্তারিত জানার জন্য টেবিল 1 দেখুন।
dry_run ঐচ্ছিক, বুলিয়ান বিস্তারিত জানার জন্য টেবিল 1 দেখুন।
পেলোড
data.<key> ঐচ্ছিক, স্ট্রিং

এই প্যারামিটারটি বার্তার পেলোডের কী-মান জোড়া নির্দিষ্ট করে। কী-মানের প্যারামিটারের সংখ্যার কোনো সীমা নেই, তবে 4000 বাইটের মোট বার্তা আকারের সীমা রয়েছে।

উদাহরণস্বরূপ, অ্যান্ড্রয়েডে, "data.score"."3x1" ফলে স্ট্রিং মান 3x1 সহ একটি অভিপ্রায় অতিরিক্ত নামের score হবে।

কীটি একটি সংরক্ষিত শব্দ ("থেকে", "বার্তা_প্রকার", বা "google" বা "gcm" দিয়ে শুরু হওয়া কোনো শব্দ) হওয়া উচিত নয়। এই টেবিলে সংজ্ঞায়িত কোন শব্দ ব্যবহার করবেন না (যেমন collapse_key )।

একটি নিম্নধারার বার্তা প্রতিক্রিয়া ব্যাখ্যা করা

এফসিএম থেকে পাঠানো বার্তার প্রতিক্রিয়া ব্যাখ্যা করতে অ্যাপ সার্ভারের বার্তা প্রতিক্রিয়া শিরোনাম এবং মূল অংশ উভয়ই মূল্যায়ন করা উচিত। নিম্নলিখিত সারণী সম্ভাব্য প্রতিক্রিয়া বর্ণনা করে।

সারণি 4. ডাউনস্ট্রিম HTTP বার্তা প্রতিক্রিয়া শিরোনাম।

প্রতিক্রিয়া বর্ণনা
200 বার্তা সফলভাবে প্রক্রিয়া করা হয়েছে. প্রতিক্রিয়া বডিতে বার্তার স্থিতি সম্পর্কে আরও বিশদ বিবরণ থাকবে, তবে অনুরোধটি JSON বা প্লেইন টেক্সট কিনা তা নির্ভর করবে এর বিন্যাস। আরও বিস্তারিত জানার জন্য টেবিল 5 দেখুন।
400 শুধুমাত্র JSON অনুরোধের জন্য প্রযোজ্য। নির্দেশ করে যে অনুরোধটি JSON হিসাবে পার্স করা যায়নি, বা এতে অবৈধ ক্ষেত্র রয়েছে (উদাহরণস্বরূপ, একটি স্ট্রিং পাস করা যেখানে একটি সংখ্যা প্রত্যাশিত ছিল)। সঠিক ব্যর্থতার কারণটি প্রতিক্রিয়াতে বর্ণনা করা হয়েছে এবং অনুরোধটি পুনরায় চেষ্টা করার আগে সমস্যার সমাধান করা উচিত।
401 প্রেরকের অ্যাকাউন্ট প্রমাণীকরণে একটি ত্রুটি ছিল৷
5xx 500-599 পরিসরে ত্রুটিগুলি (যেমন 500 বা 503) নির্দেশ করে যে অনুরোধটি প্রক্রিয়া করার চেষ্টা করার সময় FCM ব্যাকএন্ডে একটি অভ্যন্তরীণ ত্রুটি ছিল, বা সার্ভারটি সাময়িকভাবে অনুপলব্ধ (উদাহরণস্বরূপ, সময় শেষ হওয়ার কারণে)৷ প্রেরককে অবশ্যই পরে পুনরায় চেষ্টা করতে হবে, প্রতিক্রিয়াতে অন্তর্ভুক্ত যেকোনো Retry-After শিরোনামকে সম্মান করে। অ্যাপ্লিকেশন সার্ভারগুলিকে অবশ্যই সূচকীয় ব্যাক-অফ প্রয়োগ করতে হবে।

নিচের সারণীটি একটি ডাউনস্ট্রিম মেসেজ রেসপন্স বডি (JSON) এর ক্ষেত্রগুলিকে তালিকাভুক্ত করে।

সারণি 5. ডাউনস্ট্রিম HTTP বার্তা প্রতিক্রিয়া বডি (JSON)।

প্যারামিটার ব্যবহার বর্ণনা
multicast_id প্রয়োজন, নম্বর মাল্টিকাস্ট বার্তা সনাক্তকারী অনন্য আইডি (সংখ্যা)।
success প্রয়োজন, নম্বর কোনো ত্রুটি ছাড়াই প্রসেস করা বার্তার সংখ্যা।
failure প্রয়োজন, নম্বর প্রসেস করা যায়নি এমন বার্তার সংখ্যা।
results প্রয়োজনীয়, অবজেক্টের অ্যারে প্রসেস করা বার্তাগুলির অবস্থার প্রতিনিধিত্বকারী বস্তুর অ্যারে। বস্তুগুলি অনুরোধের মতো একই ক্রমে তালিকাভুক্ত করা হয়েছে (অর্থাৎ, অনুরোধে প্রতিটি নিবন্ধকরণ আইডির জন্য, এর ফলাফল প্রতিক্রিয়াতে একই সূচকে তালিকাভুক্ত করা হয়েছে)।
  • message_id : প্রতিটি সফলভাবে প্রক্রিয়াকৃত বার্তার জন্য একটি অনন্য আইডি নির্দিষ্ট করে স্ট্রিং।
  • error : প্রাপকের জন্য বার্তা প্রক্রিয়া করার সময় যে ত্রুটি ঘটেছে তা নির্দিষ্ট করে স্ট্রিং। সম্ভাব্য মানগুলি সারণি 9 এ পাওয়া যাবে।

সারণি 6. বিষয় বার্তা HTTP প্রতিক্রিয়া বডি (JSON)।

প্যারামিটার ব্যবহার বর্ণনা
message_id ঐচ্ছিক, সংখ্যা বিষয় বার্তা ID যখন FCM সফলভাবে অনুরোধটি পেয়েছে এবং সমস্ত সদস্যতা নেওয়া ডিভাইসে বিতরণ করার চেষ্টা করবে।
error ঐচ্ছিক, স্ট্রিং বার্তা প্রক্রিয়া করার সময় যে ত্রুটি ঘটেছে. সম্ভাব্য মানগুলি সারণি 9 এ পাওয়া যাবে।

সারণি 7. ডাউনস্ট্রিম HTTP বার্তা প্রতিক্রিয়া বডি (প্লেন টেক্সট) এর জন্য সফল প্রতিক্রিয়া।

প্যারামিটার ব্যবহার বর্ণনা
id প্রয়োজনীয়, স্ট্রিং এই প্যারামিটারটি নির্দিষ্ট করে অনন্য বার্তা ID FCM সফলভাবে প্রক্রিয়া করা হয়েছে।
registration_id ঐচ্ছিক, স্ট্রিং এই প্যারামিটারটি ক্লায়েন্ট অ্যাপের জন্য নিবন্ধন টোকেন নির্দিষ্ট করে যে বার্তাটি প্রক্রিয়া করা হয়েছিল এবং পাঠানো হয়েছিল৷

সারণি 8. ডাউনস্ট্রিম HTTP বার্তা প্রতিক্রিয়া বডির জন্য ত্রুটি প্রতিক্রিয়া (প্লেইন টেক্সট)।

প্যারামিটার ব্যবহার বর্ণনা
Error প্রয়োজনীয়, স্ট্রিং এই প্যারামিটারটি প্রাপকের জন্য বার্তাটি প্রক্রিয়া করার সময় ত্রুটির মান নির্দিষ্ট করে। বিস্তারিত জানার জন্য টেবিল 9 দেখুন।

ডাউনস্ট্রিম বার্তা ত্রুটি প্রতিক্রিয়া কোড

নিচের সারণীটি ডাউনস্ট্রিম বার্তাগুলির জন্য ত্রুটি প্রতিক্রিয়া কোডগুলি তালিকাভুক্ত করে৷

সারণি 9. ডাউনস্ট্রিম বার্তা ত্রুটি প্রতিক্রিয়া কোড.

ত্রুটি HTTP কোড সুপারিশকৃত কাজ
অনুপস্থিত নিবন্ধন টোকেন 200 + ত্রুটি: অনুপস্থিত নিবন্ধন অনুরোধে একটি রেজিস্ট্রেশন টোকেন আছে কিনা পরীক্ষা করুন (একটি প্লেইন টেক্সট মেসেজে registration_id বা JSON-এ to বা registration_ids ক্ষেত্রে)।
অবৈধ রেজিস্ট্রেশন টোকেন 200 + ত্রুটি: অবৈধ নিবন্ধন আপনি সার্ভারে যে নিবন্ধন টোকেন পাস করেন তার বিন্যাস পরীক্ষা করুন। নিশ্চিত করুন যে এটি রেজিস্ট্রেশন টোকেনের সাথে মেলে যে ক্লায়েন্ট অ্যাপটি Firebase নোটিফিকেশনের সাথে নিবন্ধন করার সময় পায়। ছোট করবেন না বা অতিরিক্ত অক্ষর যোগ করবেন না।
অনিবন্ধিত ডিভাইস 200 + ত্রুটি: নিবন্ধিত নয় একটি বিদ্যমান নিবন্ধন টোকেন বিভিন্ন পরিস্থিতিতে বৈধ না হতে পারে, যার মধ্যে রয়েছে:
  • যদি ক্লায়েন্ট অ্যাপ FCM-এর সাথে নিবন্ধনমুক্ত করে।
  • যদি ক্লায়েন্ট অ্যাপটি স্বয়ংক্রিয়ভাবে অনিবন্ধিত হয়, যা ঘটতে পারে যদি ব্যবহারকারী অ্যাপ্লিকেশনটি আনইনস্টল করে। উদাহরণস্বরূপ, iOS-এ, যদি APNs ফিডব্যাক পরিষেবা APNs টোকেনটিকে অবৈধ বলে রিপোর্ট করে।
  • যদি রেজিস্ট্রেশন টোকেনের মেয়াদ শেষ হয়ে যায় (উদাহরণস্বরূপ, Google রেজিস্ট্রেশন টোকেন রিফ্রেশ করার সিদ্ধান্ত নিতে পারে বা iOS ডিভাইসের জন্য APNs টোকেনের মেয়াদ শেষ হয়ে গেছে)।
  • যদি ক্লায়েন্ট অ্যাপটি আপডেট করা হয় তবে নতুন সংস্করণটি বার্তা গ্রহণের জন্য কনফিগার করা না থাকে।
এই সমস্ত ক্ষেত্রে, অ্যাপ সার্ভার থেকে এই নিবন্ধন টোকেনটি সরান এবং বার্তা পাঠানোর জন্য এটি ব্যবহার করা বন্ধ করুন৷
অবৈধ প্যাকেজের নাম 200 + ত্রুটি: অবৈধ প্যাকেজ নাম নিশ্চিত করুন যে বার্তাটি একটি রেজিস্ট্রেশন টোকেনে সম্বোধন করা হয়েছে যার প্যাকেজের নাম অনুরোধে পাস করা মানের সাথে মেলে।
প্রমাণীকরণ ত্রুটি 401 একটি বার্তা পাঠাতে ব্যবহৃত প্রেরকের অ্যাকাউন্টটি প্রমাণীকরণ করা যায়নি৷ সম্ভাব্য কারণগুলি হল:
  • অনুমোদন হেডার অনুপস্থিত বা HTTP অনুরোধে অবৈধ সিনট্যাক্স সহ।
  • নির্দিষ্ট সার্ভার কী যে ফায়ারবেস প্রকল্পের অন্তর্গত তা ভুল।
  • শুধুমাত্র লিগ্যাসি সার্ভার কী—সার্ভার কী আইপি-তে সাদা তালিকাভুক্ত নয় এমন একটি সার্ভার থেকে অনুরোধটি এসেছে।
যাচাই করুন যে আপনি প্রমাণীকরণ শিরোনামের ভিতরে যে টোকেনটি পাঠাচ্ছেন সেটি আপনার প্রকল্পের সাথে যুক্ত সঠিক সার্ভার কী। বিস্তারিত জানার জন্য সার্ভার কী এর বৈধতা পরীক্ষা করা দেখুন। আপনি যদি একটি লিগ্যাসি সার্ভার কী ব্যবহার করেন, তাহলে আপনাকে একটি নতুন কীতে আপগ্রেড করার পরামর্শ দেওয়া হচ্ছে যার কোনো আইপি সীমাবদ্ধতা নেই৷ মাইগ্রেট লিগ্যাসি সার্ভার কী দেখুন।
মেলেনি প্রেরক 200 + ত্রুটি: MismatchSenderId একটি নিবন্ধন টোকেন প্রেরকদের একটি নির্দিষ্ট গোষ্ঠীর সাথে আবদ্ধ। যখন একটি ক্লায়েন্ট অ্যাপ FCM-এর জন্য নিবন্ধন করে, তখন এটি অবশ্যই উল্লেখ করবে যে কোন প্রেরকদের বার্তা পাঠানোর অনুমতি দেওয়া হয়েছে। ক্লায়েন্ট অ্যাপে বার্তা পাঠানোর সময় আপনার সেই প্রেরক আইডিগুলির মধ্যে একটি ব্যবহার করা উচিত। আপনি যদি অন্য প্রেরকের কাছে যান, বিদ্যমান নিবন্ধন টোকেনগুলি কাজ করবে না৷
অবৈধ JSON 400 JSON বার্তাটি সঠিকভাবে ফরম্যাট করা হয়েছে এবং বৈধ ক্ষেত্র রয়েছে তা পরীক্ষা করুন (উদাহরণস্বরূপ, সঠিক ডেটা টাইপ পাস করা হয়েছে তা নিশ্চিত করুন)।
অবৈধ পরামিতি 400 + ত্রুটি: অবৈধ প্যারামিটার প্রদত্ত পরামিতিগুলির সঠিক নাম এবং প্রকার রয়েছে তা পরীক্ষা করুন৷
বার্তা খুব বড় 200 + ত্রুটি: MessageTooBig একটি বার্তায় অন্তর্ভুক্ত পেলোড ডেটার মোট আকার FCM সীমা অতিক্রম করে না তা পরীক্ষা করুন: বেশিরভাগ বার্তার জন্য 4096 বাইট, বা বিষয়গুলিতে বার্তাগুলির ক্ষেত্রে 2048 বাইট৷ এটি কী এবং মান উভয়ই অন্তর্ভুক্ত করে।
অবৈধ ডেটা কী 200 + ত্রুটি:
InvalidDataKey
চেক করুন যে পেলোড ডেটাতে একটি কী (যেমন from , বা gcm , বা google দ্বারা প্রিফিক্স করা কোনো মান) নেই যা FCM দ্বারা অভ্যন্তরীণভাবে ব্যবহৃত হয়। মনে রাখবেন যে কিছু শব্দ (যেমন collapse_key ) FCM দ্বারাও ব্যবহৃত হয় কিন্তু পেলোডে অনুমোদিত, এই ক্ষেত্রে পেলোড মান FCM মান দ্বারা ওভাররাইড করা হবে।
বেঁচে থাকার জন্য অবৈধ সময় 200 + ত্রুটি: InvalidTtl পরীক্ষা করুন যে time_to_live এ ব্যবহৃত মানটি 0 এবং 2,419,200 (4 সপ্তাহ) এর মধ্যে সেকেন্ডে একটি পূর্ণসংখ্যা উপস্থাপন করে।
সময় শেষ 5xx বা 200 + ত্রুটি: অনুপলব্ধ৷

সার্ভার সময়মত অনুরোধ প্রক্রিয়া করতে পারেনি. একই অনুরোধ পুনরায় চেষ্টা করুন, কিন্তু আপনি অবশ্যই:

  • Retry-After শিরোনামটিকে সম্মান করুন যদি এটি FCM সংযোগ সার্ভারের প্রতিক্রিয়াতে অন্তর্ভুক্ত থাকে।
  • আপনার পুনরায় চেষ্টা করার পদ্ধতিতে সূচকীয় ব্যাক-অফ প্রয়োগ করুন। (যেমন আপনি যদি প্রথম পুনঃপ্রচেষ্টার আগে এক সেকেন্ড অপেক্ষা করেন, তাহলে পরেরটির আগে কমপক্ষে দুই সেকেন্ড অপেক্ষা করুন, তারপর 4 সেকেন্ড এবং আরও অনেক কিছু)। আপনি যদি একাধিক বার্তা পাঠান, একই সময়ে সমস্ত বার্তার জন্য একটি নতুন অনুরোধ জারি করা এড়াতে প্রতিটিকে একটি অতিরিক্ত র্যান্ডম পরিমাণে স্বাধীনভাবে বিলম্বিত করুন।

যেসব প্রেরক সমস্যা সৃষ্টি করে তাদের কালো তালিকাভুক্ত হওয়ার ঝুঁকি থাকে।

অভ্যন্তরীণ সার্ভার ত্রুটি 500 বা 200 + ত্রুটি: অভ্যন্তরীণ সার্ভার ত্রুটি৷ অনুরোধটি প্রক্রিয়া করার চেষ্টা করার সময় সার্ভার একটি ত্রুটির সম্মুখীন হয়েছে৷ আপনি "টাইমআউট" এ তালিকাভুক্ত প্রয়োজনীয়তা অনুসরণ করে একই অনুরোধ পুনরায় চেষ্টা করতে পারেন (উপরের সারি দেখুন)। যদি ত্রুটিটি থেকে যায়, অনুগ্রহ করে Firebase সহায়তার সাথে যোগাযোগ করুন।
ডিভাইস বার্তা হার অতিক্রম 200 + ত্রুটি:
ডিভাইস মেসেজ রেট
ছাড়িয়ে গেছে

একটি নির্দিষ্ট ডিভাইসে বার্তার হার খুব বেশি। যদি একটি Apple অ্যাপ APNs সীমা অতিক্রম করে বার্তা পাঠায়, তবে এটি এই ত্রুটি বার্তা পেতে পারে

এই ডিভাইসে প্রেরিত বার্তার সংখ্যা হ্রাস করুন এবং পুনরায় পাঠানোর চেষ্টা করতে সূচকীয় ব্যাকঅফ ব্যবহার করুন৷

বিষয় বার্তা হার অতিক্রম 200 + ত্রুটি:
বিষয় মেসেজরেট
ছাড়িয়ে গেছে
একটি নির্দিষ্ট বিষয়ে গ্রাহকদের বার্তার হার খুব বেশি। এই বিষয়ের জন্য প্রেরিত বার্তার সংখ্যা হ্রাস করুন এবং পুনরায় পাঠানোর চেষ্টা করতে সূচকীয় ব্যাকঅফ ব্যবহার করুন৷
অবৈধ APN শংসাপত্র 200 + ত্রুটি:
অবৈধApnsCredential
একটি Apple ডিভাইসে লক্ষ্য করা একটি বার্তা পাঠানো যায়নি কারণ প্রয়োজনীয় APN-এর প্রমাণীকরণ কী আপলোড করা হয়নি বা মেয়াদ শেষ হয়ে গেছে৷ আপনার উন্নয়ন এবং উত্পাদন শংসাপত্রের বৈধতা পরীক্ষা করুন.

ডিভাইস গ্রুপ পরিচালনা

নিম্নলিখিত সারণীতে ডিভাইস গোষ্ঠী তৈরি এবং সদস্যদের যোগ এবং অপসারণের জন্য কীগুলি তালিকাভুক্ত করা হয়েছে। আরও তথ্যের জন্য, আপনার প্ল্যাটফর্ম, iOS+ বা Android এর জন্য নির্দেশিকা দেখুন।

সারণী 10. ডিভাইস গ্রুপ ম্যানেজমেন্ট কী।

প্যারামিটার ব্যবহার বর্ণনা
operation প্রয়োজনীয়, স্ট্রিং চালানোর জন্য অপারেশন। বৈধ মান create , add এবং remove
notification_key_name প্রয়োজনীয়, স্ট্রিং তৈরি বা পরিবর্তন করার জন্য ডিভাইস গ্রুপের ব্যবহারকারী-নির্ধারিত নাম।
notification_key প্রয়োজন ( create অপারেশন ছাড়া, স্ট্রিং ডিভাইস গ্রুপের অনন্য শনাক্তকারী। এই মানটি একটি সফল create অপারেশনের প্রতিক্রিয়াতে ফেরত দেওয়া হয়, এবং ডিভাইস গ্রুপে পরবর্তী সমস্ত ক্রিয়াকলাপের জন্য প্রয়োজনীয়।
registration_ids প্রয়োজনীয়, স্ট্রিং এর অ্যারে ডিভাইস যোগ বা অপসারণ টোকেন. আপনি যদি একটি ডিভাইস গ্রুপ থেকে সমস্ত বিদ্যমান রেজিস্ট্রেশন টোকেন মুছে ফেলেন, FCM ডিভাইস গ্রুপ মুছে দেয়।