Firebase Admin SDK এবং FCM v1 HTTP API আপনার বার্তা অনুরোধগুলিকে message অবজেক্টে উপলব্ধ সমস্ত ক্ষেত্র সেট করতে দেয়। এর মধ্যে রয়েছে:
- বার্তা গ্রহণকারী সমস্ত অ্যাপ ইনস্ট্যান্স দ্বারা ব্যাখ্যা করা ক্ষেত্রগুলির একটি সাধারণ সেট।
- প্ল্যাটফর্ম-নির্দিষ্ট ফিল্ডের সেট, যেমন
AndroidConfigএবংWebpushConfig, শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মে চলমান অ্যাপ ইনস্ট্যান্স দ্বারা ব্যাখ্যা করা হয়।
প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলি আপনাকে বিভিন্ন প্ল্যাটফর্মের জন্য বার্তাগুলি কাস্টমাইজ করার নমনীয়তা দেয় যাতে প্রাপ্তির সময় সেগুলি সঠিকভাবে পরিচালনা করা হয়। FCM ব্যাকএন্ড সমস্ত নির্দিষ্ট পরামিতি বিবেচনা করবে এবং প্রতিটি প্ল্যাটফর্মের জন্য বার্তাটি কাস্টমাইজ করবে।
কখন সাধারণ ক্ষেত্র ব্যবহার করবেন
নিম্নলিখিত ক্ষেত্রে সাধারণ ক্ষেত্রগুলি ব্যবহার করুন:
- যেকোনো প্ল্যাটফর্মে ক্ষেত্র পাঠান
- বিষয়গুলিতে বার্তা পাঠান
প্ল্যাটফর্ম নির্বিশেষে, সমস্ত অ্যাপ ইনস্ট্যান্স নিম্নলিখিত সাধারণ ক্ষেত্রগুলি ব্যাখ্যা করতে পারে:
প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি কখন ব্যবহার করবেন
যখন আপনি চান তখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি ব্যবহার করুন:
- শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মগুলিতে ক্ষেত্রগুলি পাঠান
- সাধারণ ক্ষেত্রগুলির পাশাপাশি প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি পাঠান
যখনই আপনি শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মে মান পাঠাতে চান, তখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি ব্যবহার করুন। উদাহরণস্বরূপ, শুধুমাত্র অ্যাপল এবং ওয়েব প্ল্যাটফর্মগুলিতে একটি বিজ্ঞপ্তি পাঠাতে কিন্তু অ্যান্ড্রয়েডে নয়, আপনাকে দুটি পৃথক ক্ষেত্র ব্যবহার করতে হবে, একটি অ্যাপলের জন্য এবং একটি ওয়েবের জন্য।
যখন আপনি নির্দিষ্ট ডেলিভারি বিকল্প সহ বার্তা পাঠাচ্ছেন, তখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি সেট করার জন্য ব্যবহার করুন। আপনি চাইলে প্রতিটি প্ল্যাটফর্মের জন্য বিভিন্ন মান নির্দিষ্ট করতে পারেন। তবে, এমনকি যখন আপনি প্ল্যাটফর্মগুলিতে মূলত একই মান সেট করতে চান, তখনও আপনাকে প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি ব্যবহার করতে হবে। এর কারণ হল প্রতিটি প্ল্যাটফর্ম মানটিকে কিছুটা ভিন্নভাবে ব্যাখ্যা করতে পারে—উদাহরণস্বরূপ, Android-এ টাইম টু লাইভ সেকেন্ডে মেয়াদোত্তীর্ণ সময় হিসাবে সেট করা হয়, যেখানে Apple-এ এটি মেয়াদোত্তীর্ণের তারিখ হিসাবে সেট করা হয়।
প্ল্যাটফর্ম-নির্দিষ্ট ডেলিভারি বিকল্প সহ বিজ্ঞপ্তি বার্তা
নিম্নলিখিত HTTP v1 API পাঠানোর অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম এবং কন্টেন্ট পাঠায়, তবে কিছু প্ল্যাটফর্ম-নির্দিষ্ট ওভাররাইডও পাঠায়। বিশেষ করে, অনুরোধটি:
- অ্যান্ড্রয়েড এবং ওয়েব প্ল্যাটফর্মের জন্য দীর্ঘ সময় ধরে লাইভ সেট করে, অন্যদিকে APN (অ্যাপল প্ল্যাটফর্ম) বার্তার অগ্রাধিকার কম সেটিংয়ে সেট করে
- অ্যান্ড্রয়েড এবং অ্যাপলে ব্যবহারকারীর নোটিফিকেশনে ট্যাপের ফলাফল নির্ধারণের জন্য উপযুক্ত কী সেট করে — যথাক্রমে
click_actionএবংcategory।
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Match update",
"body":"Arsenal goal in added time, score is now 3-0"
},
"android":{
"ttl":"86400s",
"notification"{
"click_action":"OPEN_ACTIVITY_1"
}
},
"apns": {
"headers": {
"apns-priority": "5",
},
"payload": {
"aps": {
"category": "NEW_MESSAGE_CATEGORY"
}
}
},
"webpush":{
"headers":{
"TTL":"86400"
}
}
}
}
আরও জানতে, বার্তার মূল অংশে প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলিতে উপলব্ধ কীগুলি সম্পর্কে আরও বিস্তারিত জানার জন্য HTTP v1 রেফারেন্স পৃষ্ঠাটি দেখুন। বার্তার মূল অংশ ধারণ করে এমন প্রেরণ অনুরোধ তৈরি করার বিষয়ে আরও তথ্যের জন্য, FCM HTTP v1 API ব্যবহার করে একটি বার্তা প্রেরণ করুন দেখুন।
রঙ এবং আইকন বিকল্প সহ বিজ্ঞপ্তি বার্তা
নিম্নলিখিত উদাহরণে, প্রেরণের অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম এবং সামগ্রী পাঠায়, তবে এটি অ্যান্ড্রয়েড ডিভাইসগুলিতে কিছু প্ল্যাটফর্ম-নির্দিষ্ট ওভাররাইডও পাঠায়।
অ্যান্ড্রয়েডের জন্য, অনুরোধটি অ্যান্ড্রয়েড ডিভাইসে প্রদর্শনের জন্য একটি বিশেষ আইকন এবং রঙ সেট করে। AndroidNotification এর রেফারেন্সে যেমন উল্লেখ করা হয়েছে, রঙটি #rrggbb ফর্ম্যাটে নির্দিষ্ট করা হয়েছে এবং ছবিটি অবশ্যই অ্যান্ড্রয়েড অ্যাপের স্থানীয় একটি অঙ্কনযোগ্য আইকন রিসোর্স হতে হবে।
ব্যবহারকারীর ডিভাইসে ভিজ্যুয়াল এফেক্টের একটি উদাহরণ এখানে দেওয়া হল:
![]()
নোড.জেএস
const topicName = 'industry-tech';
const message = {
notification: {
title: '`$FooCorp` up 1.43% on the day',
body: 'FooCorp gained 11.80 points to close at 835.67, up 1.43% on the day.'
},
android: {
notification: {
icon: 'stock_ticker_update',
color: '#7e55c3'
}
},
topic: topicName,
};
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
জাভা
Message message = Message.builder()
.setNotification(Notification.builder()
.setTitle("$GOOG up 1.43% on the day")
.setBody("$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.")
.build())
.setAndroidConfig(AndroidConfig.builder()
.setTtl(3600 * 1000)
.setNotification(AndroidNotification.builder()
.setIcon("stock_ticker_update")
.setColor("#f45342")
.build())
.build())
.setApnsConfig(ApnsConfig.builder()
.setAps(Aps.builder()
.setBadge(42)
.build())
.build())
.setTopic("industry-tech")
.build();
পাইথন
message = messaging.Message(
notification=messaging.Notification(
title='$GOOG up 1.43% on the day',
body='$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.',
),
android=messaging.AndroidConfig(
ttl=datetime.timedelta(seconds=3600),
priority='normal',
notification=messaging.AndroidNotification(
icon='stock_ticker_update',
color='#f45342'
),
),
apns=messaging.APNSConfig(
payload=messaging.APNSPayload(
aps=messaging.Aps(badge=42),
),
),
topic='industry-tech',
)
যাও
oneHour := time.Duration(1) * time.Hour
badge := 42
message := &messaging.Message{
Notification: &messaging.Notification{
Title: "$GOOG up 1.43% on the day",
Body: "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.",
},
Android: &messaging.AndroidConfig{
TTL: &oneHour,
Notification: &messaging.AndroidNotification{
Icon: "stock_ticker_update",
Color: "#f45342",
},
},
APNS: &messaging.APNSConfig{
Payload: &messaging.APNSPayload{
Aps: &messaging.Aps{
Badge: &badge,
},
},
},
Topic: "industry-tech",
}
সি#
var message = new Message
{
Notification = new Notification()
{
Title = "$GOOG up 1.43% on the day",
Body = "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.",
},
Android = new AndroidConfig()
{
TimeToLive = TimeSpan.FromHours(1),
Notification = new AndroidNotification()
{
Icon = "stock_ticker_update",
Color = "#f45342",
},
},
Apns = new ApnsConfig()
{
Aps = new Aps()
{
Badge = 42,
},
},
Topic = "industry-tech",
};
বিশ্রাম
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"topic":"industry-tech",
"notification":{
"title": "`$FooCorp` up 1.43% on the day",
"body": "FooCorp gained 11.80 points to close at 835.67, up 1.43% on the day."
},
"android":{
"notification":{
"icon":"stock_ticker_update",
"color":"#7e55c3"
}
}
}
}
আরও জানতে, বার্তার মূল অংশে প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলিতে উপলব্ধ কীগুলি সম্পর্কে আরও বিস্তারিত জানার জন্য HTTP v1 রেফারেন্স পৃষ্ঠাটি দেখুন।
একটি কাস্টম ছবি সহ বিজ্ঞপ্তি বার্তা
মনে রাখবেন:
- বিজ্ঞপ্তির জন্য ছবিগুলির আকার 1MB পর্যন্ত সীমাবদ্ধ, এবং অন্যথায় অন্তর্নির্মিত অ্যান্ড্রয়েড চিত্র সমর্থন দ্বারা সীমাবদ্ধ।
- অ্যাপল অ্যাপে বিজ্ঞপ্তি ছবি গ্রহণ এবং পরিচালনা করতে সক্ষম হতে, আপনাকে একটি বিজ্ঞপ্তি পরিষেবা এক্সটেনশন যোগ করতে হবে। বিজ্ঞপ্তি পরিষেবা এক্সটেনশনটি আপনার অ্যাপকে শেষ ব্যবহারকারীর কাছে বিজ্ঞপ্তি প্রদর্শনের আগে FCM পেলোডে বিতরণ করা চিত্র পরিচালনা করতে দেয়, কোড নমুনার জন্য বিজ্ঞপ্তি পরিষেবা এক্সটেনশন সেট আপ করুন দেখুন।
- নোটিফিকেশন কম্পোজার ব্যবহার করে আপলোড করা ছবিগুলির আকার 300KB পর্যন্ত সীমাবদ্ধ।
- Cloud Storage থেকে সংরক্ষিত বা পরিবেশিত ছবিগুলি স্ট্যান্ডার্ড কোটা সীমার সাপেক্ষে।
আপনার বিজ্ঞপ্তি প্রেরণের অনুরোধে, পেলোডে বিতরণ করা চিত্রটি পরিচালনা করতে রিসিভিং ক্লায়েন্টকে সক্ষম করতে নিম্নলিখিত বিকল্পগুলি সেট করুন:
- অ্যান্ড্রয়েডের জন্য, নিম্নলিখিত AndroidConfig বিকল্পটি সেট করুন:
-
notification.imageছবির URL আছে
-
- iOS এর জন্য, নিম্নলিখিত ApnsConfig বিকল্পগুলি সেট করুন:
-
fcm_options.imageছবির URL রয়েছে। অ্যাপল রিসোর্সের ধরণ সঠিকভাবে সনাক্ত করার জন্য ছবির URL-এ একটি বৈধ ফাইল এক্সটেনশন অন্তর্ভুক্ত করতে বাধ্য করে। -
headers({ "mutable-content": 1})
-
নিম্নলিখিত পাঠানোর অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম পাঠায়, তবে এটি একটি ছবিও পাঠায়। ব্যবহারকারীর ডিভাইসে ভিজ্যুয়াল এফেক্টের একটি উদাহরণ এখানে দেওয়া হল:

নোড.জেএস
const topicName = 'industry-tech';
const message = {
notification: {
title: 'Sparky says hello!'
},
android: {
notification: {
imageUrl: 'https://foo.bar.pizza-monster.png'
}
},
apns: {
payload: {
aps: {
'mutable-content': 1
}
},
fcm_options: {
image: 'https://foo.bar.pizza-monster.png'
}
},
webpush: {
headers: {
image: 'https://foo.bar.pizza-monster.png'
}
},
topic: topicName,
};
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
বিশ্রাম
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"topic":"industry-tech",
"notification":{
"title":"Sparky says hello!",
},
"android":{
"notification":{
"image":"https://foo.bar/pizza-monster.png"
}
},
"apns":{
"payload":{
"aps":{
"mutable-content":1
}
},
"fcm_options": {
"image":"https://foo.bar/pizza-monster.png"
}
},
"webpush":{
"headers":{
"image":"https://foo.bar/pizza-monster.png"
}
}
}
}
আরও জানতে, বার্তার মূল অংশে প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলিতে উপলব্ধ কীগুলি সম্পর্কে আরও বিস্তারিত জানার জন্য HTTP v1 রেফারেন্স পৃষ্ঠাটি দেখুন।
একটি সম্পর্কিত ক্লিক অ্যাকশন সহ বিজ্ঞপ্তি বার্তা
নিম্নলিখিত পাঠানোর অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম পাঠায়, তবে এটি ব্যবহারকারীর বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট করার প্রতিক্রিয়ায় অ্যাপটিকে একটি ক্রিয়া সম্পাদন করতেও পাঠায়। এখানে ব্যবহারকারীর ডিভাইসে ভিজ্যুয়াল এফেক্টের একটি উদাহরণ দেওয়া হল:

নোড.জেএস
const topicName = 'industry-tech';
const message = {
notification: {
title: 'Breaking News....'
},
android: {
notification: {
clickAction: 'news_intent'
}
},
apns: {
payload: {
aps: {
'category': 'INVITE_CATEGORY'
}
}
},
webpush: {
fcmOptions: {
link: 'breakingnews.html'
}
},
topic: topicName,
};
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
বিশ্রাম
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Firebase Admin SDK এবং FCM v1 HTTP API আপনার বার্তা অনুরোধগুলিকে message অবজেক্টে উপলব্ধ সমস্ত ক্ষেত্র সেট করতে দেয়। এর মধ্যে রয়েছে:
- বার্তা গ্রহণকারী সমস্ত অ্যাপ ইনস্ট্যান্স দ্বারা ব্যাখ্যা করা ক্ষেত্রগুলির একটি সাধারণ সেট।
- প্ল্যাটফর্ম-নির্দিষ্ট ফিল্ডের সেট, যেমন
AndroidConfigএবংWebpushConfig, শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মে চলমান অ্যাপ ইনস্ট্যান্স দ্বারা ব্যাখ্যা করা হয়।
প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলি আপনাকে বিভিন্ন প্ল্যাটফর্মের জন্য বার্তাগুলি কাস্টমাইজ করার নমনীয়তা দেয় যাতে প্রাপ্তির সময় সেগুলি সঠিকভাবে পরিচালনা করা হয়। FCM ব্যাকএন্ড সমস্ত নির্দিষ্ট পরামিতি বিবেচনা করবে এবং প্রতিটি প্ল্যাটফর্মের জন্য বার্তাটি কাস্টমাইজ করবে।
কখন সাধারণ ক্ষেত্র ব্যবহার করবেন
নিম্নলিখিত ক্ষেত্রে সাধারণ ক্ষেত্রগুলি ব্যবহার করুন:
- যেকোনো প্ল্যাটফর্মে ক্ষেত্র পাঠান
- বিষয়গুলিতে বার্তা পাঠান
প্ল্যাটফর্ম নির্বিশেষে, সমস্ত অ্যাপ ইনস্ট্যান্স নিম্নলিখিত সাধারণ ক্ষেত্রগুলি ব্যাখ্যা করতে পারে:
প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি কখন ব্যবহার করবেন
যখন আপনি চান তখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি ব্যবহার করুন:
- শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মগুলিতে ক্ষেত্রগুলি পাঠান
- সাধারণ ক্ষেত্রগুলির পাশাপাশি প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি পাঠান
যখনই আপনি শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মে মান পাঠাতে চান, তখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি ব্যবহার করুন। উদাহরণস্বরূপ, শুধুমাত্র অ্যাপল এবং ওয়েব প্ল্যাটফর্মগুলিতে একটি বিজ্ঞপ্তি পাঠাতে কিন্তু অ্যান্ড্রয়েডে নয়, আপনাকে দুটি পৃথক ক্ষেত্র ব্যবহার করতে হবে, একটি অ্যাপলের জন্য এবং একটি ওয়েবের জন্য।
যখন আপনি নির্দিষ্ট ডেলিভারি বিকল্প সহ বার্তা পাঠাচ্ছেন, তখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি সেট করার জন্য ব্যবহার করুন। আপনি চাইলে প্রতিটি প্ল্যাটফর্মের জন্য বিভিন্ন মান নির্দিষ্ট করতে পারেন। তবে, এমনকি যখন আপনি প্ল্যাটফর্মগুলিতে মূলত একই মান সেট করতে চান, তখনও আপনাকে প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্রগুলি ব্যবহার করতে হবে। এর কারণ হল প্রতিটি প্ল্যাটফর্ম মানটিকে কিছুটা ভিন্নভাবে ব্যাখ্যা করতে পারে—উদাহরণস্বরূপ, Android-এ টাইম টু লাইভ সেকেন্ডে মেয়াদোত্তীর্ণ সময় হিসাবে সেট করা হয়, যেখানে Apple-এ এটি মেয়াদোত্তীর্ণের তারিখ হিসাবে সেট করা হয়।
প্ল্যাটফর্ম-নির্দিষ্ট ডেলিভারি বিকল্প সহ বিজ্ঞপ্তি বার্তা
নিম্নলিখিত HTTP v1 API পাঠানোর অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম এবং কন্টেন্ট পাঠায়, তবে কিছু প্ল্যাটফর্ম-নির্দিষ্ট ওভাররাইডও পাঠায়। বিশেষ করে, অনুরোধটি:
- অ্যান্ড্রয়েড এবং ওয়েব প্ল্যাটফর্মের জন্য দীর্ঘ সময় ধরে লাইভ সেট করে, অন্যদিকে APN (অ্যাপল প্ল্যাটফর্ম) বার্তার অগ্রাধিকার কম সেটিংয়ে সেট করে
- অ্যান্ড্রয়েড এবং অ্যাপলে ব্যবহারকারীর নোটিফিকেশনে ট্যাপের ফলাফল নির্ধারণের জন্য উপযুক্ত কী সেট করে — যথাক্রমে
click_actionএবংcategory।
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Match update",
"body":"Arsenal goal in added time, score is now 3-0"
},
"android":{
"ttl":"86400s",
"notification"{
"click_action":"OPEN_ACTIVITY_1"
}
},
"apns": {
"headers": {
"apns-priority": "5",
},
"payload": {
"aps": {
"category": "NEW_MESSAGE_CATEGORY"
}
}
},
"webpush":{
"headers":{
"TTL":"86400"
}
}
}
}
আরও জানতে, বার্তার মূল অংশে প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলিতে উপলব্ধ কীগুলি সম্পর্কে আরও বিস্তারিত জানার জন্য HTTP v1 রেফারেন্স পৃষ্ঠাটি দেখুন। বার্তার মূল অংশ ধারণ করে এমন প্রেরণ অনুরোধ তৈরি করার বিষয়ে আরও তথ্যের জন্য, FCM HTTP v1 API ব্যবহার করে একটি বার্তা প্রেরণ করুন দেখুন।
রঙ এবং আইকন বিকল্প সহ বিজ্ঞপ্তি বার্তা
নিম্নলিখিত উদাহরণে, প্রেরণের অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম এবং সামগ্রী পাঠায়, তবে এটি অ্যান্ড্রয়েড ডিভাইসগুলিতে কিছু প্ল্যাটফর্ম-নির্দিষ্ট ওভাররাইডও পাঠায়।
অ্যান্ড্রয়েডের জন্য, অনুরোধটি অ্যান্ড্রয়েড ডিভাইসে প্রদর্শনের জন্য একটি বিশেষ আইকন এবং রঙ সেট করে। AndroidNotification এর রেফারেন্সে যেমন উল্লেখ করা হয়েছে, রঙটি #rrggbb ফর্ম্যাটে নির্দিষ্ট করা হয়েছে এবং ছবিটি অবশ্যই অ্যান্ড্রয়েড অ্যাপের স্থানীয় একটি অঙ্কনযোগ্য আইকন রিসোর্স হতে হবে।
ব্যবহারকারীর ডিভাইসে ভিজ্যুয়াল এফেক্টের একটি উদাহরণ এখানে দেওয়া হল:
![]()
নোড.জেএস
const topicName = 'industry-tech';
const message = {
notification: {
title: '`$FooCorp` up 1.43% on the day',
body: 'FooCorp gained 11.80 points to close at 835.67, up 1.43% on the day.'
},
android: {
notification: {
icon: 'stock_ticker_update',
color: '#7e55c3'
}
},
topic: topicName,
};
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
জাভা
Message message = Message.builder()
.setNotification(Notification.builder()
.setTitle("$GOOG up 1.43% on the day")
.setBody("$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.")
.build())
.setAndroidConfig(AndroidConfig.builder()
.setTtl(3600 * 1000)
.setNotification(AndroidNotification.builder()
.setIcon("stock_ticker_update")
.setColor("#f45342")
.build())
.build())
.setApnsConfig(ApnsConfig.builder()
.setAps(Aps.builder()
.setBadge(42)
.build())
.build())
.setTopic("industry-tech")
.build();
পাইথন
message = messaging.Message(
notification=messaging.Notification(
title='$GOOG up 1.43% on the day',
body='$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.',
),
android=messaging.AndroidConfig(
ttl=datetime.timedelta(seconds=3600),
priority='normal',
notification=messaging.AndroidNotification(
icon='stock_ticker_update',
color='#f45342'
),
),
apns=messaging.APNSConfig(
payload=messaging.APNSPayload(
aps=messaging.Aps(badge=42),
),
),
topic='industry-tech',
)
যাও
oneHour := time.Duration(1) * time.Hour
badge := 42
message := &messaging.Message{
Notification: &messaging.Notification{
Title: "$GOOG up 1.43% on the day",
Body: "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.",
},
Android: &messaging.AndroidConfig{
TTL: &oneHour,
Notification: &messaging.AndroidNotification{
Icon: "stock_ticker_update",
Color: "#f45342",
},
},
APNS: &messaging.APNSConfig{
Payload: &messaging.APNSPayload{
Aps: &messaging.Aps{
Badge: &badge,
},
},
},
Topic: "industry-tech",
}
সি#
var message = new Message
{
Notification = new Notification()
{
Title = "$GOOG up 1.43% on the day",
Body = "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.",
},
Android = new AndroidConfig()
{
TimeToLive = TimeSpan.FromHours(1),
Notification = new AndroidNotification()
{
Icon = "stock_ticker_update",
Color = "#f45342",
},
},
Apns = new ApnsConfig()
{
Aps = new Aps()
{
Badge = 42,
},
},
Topic = "industry-tech",
};
বিশ্রাম
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"topic":"industry-tech",
"notification":{
"title": "`$FooCorp` up 1.43% on the day",
"body": "FooCorp gained 11.80 points to close at 835.67, up 1.43% on the day."
},
"android":{
"notification":{
"icon":"stock_ticker_update",
"color":"#7e55c3"
}
}
}
}
আরও জানতে, বার্তার মূল অংশে প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলিতে উপলব্ধ কীগুলি সম্পর্কে আরও বিস্তারিত জানার জন্য HTTP v1 রেফারেন্স পৃষ্ঠাটি দেখুন।
একটি কাস্টম ছবি সহ বিজ্ঞপ্তি বার্তা
মনে রাখবেন:
- বিজ্ঞপ্তির জন্য ছবিগুলির আকার 1MB পর্যন্ত সীমাবদ্ধ, এবং অন্যথায় অন্তর্নির্মিত অ্যান্ড্রয়েড চিত্র সমর্থন দ্বারা সীমাবদ্ধ।
- অ্যাপল অ্যাপে বিজ্ঞপ্তি ছবি গ্রহণ এবং পরিচালনা করতে সক্ষম হতে, আপনাকে একটি বিজ্ঞপ্তি পরিষেবা এক্সটেনশন যোগ করতে হবে। বিজ্ঞপ্তি পরিষেবা এক্সটেনশনটি আপনার অ্যাপকে শেষ ব্যবহারকারীর কাছে বিজ্ঞপ্তি প্রদর্শনের আগে FCM পেলোডে বিতরণ করা চিত্র পরিচালনা করতে দেয়, কোড নমুনার জন্য বিজ্ঞপ্তি পরিষেবা এক্সটেনশন সেট আপ করুন দেখুন।
- নোটিফিকেশন কম্পোজার ব্যবহার করে আপলোড করা ছবিগুলির আকার 300KB পর্যন্ত সীমাবদ্ধ।
- Cloud Storage থেকে সংরক্ষিত বা পরিবেশিত ছবিগুলি স্ট্যান্ডার্ড কোটা সীমার সাপেক্ষে।
আপনার বিজ্ঞপ্তি প্রেরণের অনুরোধে, পেলোডে বিতরণ করা চিত্রটি পরিচালনা করতে রিসিভিং ক্লায়েন্টকে সক্ষম করতে নিম্নলিখিত বিকল্পগুলি সেট করুন:
- অ্যান্ড্রয়েডের জন্য, নিম্নলিখিত AndroidConfig বিকল্পটি সেট করুন:
-
notification.imageছবির URL আছে
-
- iOS এর জন্য, নিম্নলিখিত ApnsConfig বিকল্পগুলি সেট করুন:
-
fcm_options.imageছবির URL রয়েছে। অ্যাপল রিসোর্সের ধরণ সঠিকভাবে সনাক্ত করার জন্য ছবির URL-এ একটি বৈধ ফাইল এক্সটেনশন অন্তর্ভুক্ত করতে বাধ্য করে। -
headers({ "mutable-content": 1})
-
নিম্নলিখিত পাঠানোর অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম পাঠায়, তবে এটি একটি ছবিও পাঠায়। ব্যবহারকারীর ডিভাইসে ভিজ্যুয়াল এফেক্টের একটি উদাহরণ এখানে দেওয়া হল:

নোড.জেএস
const topicName = 'industry-tech';
const message = {
notification: {
title: 'Sparky says hello!'
},
android: {
notification: {
imageUrl: 'https://foo.bar.pizza-monster.png'
}
},
apns: {
payload: {
aps: {
'mutable-content': 1
}
},
fcm_options: {
image: 'https://foo.bar.pizza-monster.png'
}
},
webpush: {
headers: {
image: 'https://foo.bar.pizza-monster.png'
}
},
topic: topicName,
};
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
বিশ্রাম
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"topic":"industry-tech",
"notification":{
"title":"Sparky says hello!",
},
"android":{
"notification":{
"image":"https://foo.bar/pizza-monster.png"
}
},
"apns":{
"payload":{
"aps":{
"mutable-content":1
}
},
"fcm_options": {
"image":"https://foo.bar/pizza-monster.png"
}
},
"webpush":{
"headers":{
"image":"https://foo.bar/pizza-monster.png"
}
}
}
}
আরও জানতে, বার্তার মূল অংশে প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলিতে উপলব্ধ কীগুলি সম্পর্কে আরও বিস্তারিত জানার জন্য HTTP v1 রেফারেন্স পৃষ্ঠাটি দেখুন।
একটি সম্পর্কিত ক্লিক অ্যাকশন সহ বিজ্ঞপ্তি বার্তা
নিম্নলিখিত পাঠানোর অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম পাঠায়, তবে এটি ব্যবহারকারীর বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট করার প্রতিক্রিয়ায় অ্যাপটিকে একটি ক্রিয়া সম্পাদন করতেও পাঠায়। এখানে ব্যবহারকারীর ডিভাইসে ভিজ্যুয়াল এফেক্টের একটি উদাহরণ দেওয়া হল:

নোড.জেএস
const topicName = 'industry-tech';
const message = {
notification: {
title: 'Breaking News....'
},
android: {
notification: {
clickAction: 'news_intent'
}
},
apns: {
payload: {
aps: {
'category': 'INVITE_CATEGORY'
}
}
},
webpush: {
fcmOptions: {
link: 'breakingnews.html'
}
},
topic: topicName,
};
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
বিশ্রাম
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1