Firebase Cloud Messaging (FCM) হল একটি ক্রস-প্ল্যাটফর্ম মেসেজিং সলিউশন, যা ডেভেলপারদের সহজে এবং দক্ষতার সাথে পুশ নোটিফিকেশন পাঠানোর সুযোগ দেয়। FCM ব্যবহার করে, ডেভেলপাররা অ্যাপ্লিকেশনে ব্যবহারকারীদের বিভিন্ন ধরনের আপডেট বা বার্তা পাঠাতে পারে, যা ব্যবহারকারীদের অ্যাপের সাথে ইন্টারঅ্যাকশন বৃদ্ধি করতে সহায়ক।
Firebase Cloud Messaging (FCM) দিয়ে Push Notifications
নিচে FCM দিয়ে পুশ নোটিফিকেশন সেটআপ এবং ইন্টিগ্রেশনের প্রক্রিয়া ধাপে ধাপে দেখানো হলো:
১. Firebase Console-এ FCM সেটআপ করা
প্রথমে আপনাকে Firebase Console এ যেতে হবে এবং একটি প্রজেক্ট তৈরি করতে হবে বা বিদ্যমান একটি প্রজেক্ট বেছে নিতে হবে।
ধাপসমূহ:
- প্রজেক্টে যান এবং "Cloud Messaging" বিভাগটি নির্বাচন করুন।
- "Add Firebase to your Android app" অপশনে গিয়ে অ্যাপ্লিকেশনের package name দিয়ে অ্যাপটি রেজিস্টার করুন।
- Google-services.json ফাইল ডাউনলোড করুন এবং এটি আপনার অ্যাপের app ডিরেক্টরিতে যোগ করুন।
২. Android Studio-তে FCM ডিপেনডেন্সি যোগ করা
Gradle ফাইলে FCM এর জন্য প্রয়োজনীয় ডিপেনডেন্সি যোগ করুন।
App-level build.gradle:
plugins {
id 'com.google.gms.google-services'
}
dependencies {
implementation platform('com.google.firebase:firebase-bom:32.1.0')
implementation 'com.google.firebase:firebase-messaging'
}
৩. Firebase Messaging Service ক্লাস তৈরি করা
FCM থেকে বার্তা রিসিভ করার জন্য একটি FirebaseMessagingService ক্লাস তৈরি করতে হবে, যা নোটিফিকেশন রিসিভ করে সেটি প্রসেস করবে।
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// Notification message received
if (remoteMessage.getNotification() != null) {
String title = remoteMessage.getNotification().getTitle();
String message = remoteMessage.getNotification().getBody();
sendNotification(title, message);
}
}
private void sendNotification(String title, String messageBody) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "default_channel_id")
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(title)
.setContentText(messageBody)
.setAutoCancel(true)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// Android Oreo (API 26) এর জন্য নোটিফিকেশন চ্যানেল তৈরি করা
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel("default_channel_id",
"Default Channel",
NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(channel);
}
notificationManager.notify(0, notificationBuilder.build());
}
}
এখানে onMessageReceived() মেথডে, রিমোট বার্তা রিসিভ হলে সেটিকে প্রসেস করা হয় এবং একটি নোটিফিকেশন তৈরি করা হয়।
৪. FCM টোকেন সংগ্রহ করা
FCM ব্যবহারকারীর জন্য একটি ইউনিক টোকেন জেনারেট করে, যা ব্যবহার করে সেই ব্যবহারকারীর ডিভাইসে বার্তা পাঠানো হয়। এই টোকেন সংগ্রহ করার জন্য, FirebaseMessaging ক্লাসের getToken() মেথড ব্যবহার করা হয়।
FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
String token = task.getResult();
Log.d("FCM Token", token);
// টোকেন সার্ভারে বা লোকালি সংরক্ষণ করুন
}
});
এই টোকেন সার্ভারে সংরক্ষণ করে ব্যবহারকারীর ডিভাইস টার্গেট করে পুশ নোটিফিকেশন পাঠানো যায়।
৫. AndroidManifest.xml এ সঠিক অনুমতি এবং সার্ভিস ডিক্লেয়ার করা
<service
android:name=".MyFirebaseMessagingService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
এখানে MyFirebaseMessagingService ক্লাসটি ম্যানিফেস্টে ডিক্লেয়ার করা হয়েছে, যাতে FCM এর মাধ্যমে মেসেজ রিসিভ করা যায়। এছাড়া, Android 13+ এর জন্য POST_NOTIFICATIONS পারমিশন যোগ করা হয়েছে, যা নোটিফিকেশন প্রদর্শন করতে প্রয়োজন।
৬. Firebase Console থেকে মেসেজ পাঠানো
Firebase Console থেকে মেসেজ পাঠানো খুবই সহজ।
ধাপসমূহ:
- Firebase Console এ "Cloud Messaging" বিভাগে যান।
- "Send your first message" বাটনে ক্লিক করুন।
- মেসেজের শিরোনাম এবং বিষয়বস্তু লিখুন।
- "Send" বাটনে ক্লিক করে মেসেজটি পাঠিয়ে দিন।
আপনার অ্যাপ্লিকেশন এখন পুশ নোটিফিকেশন রিসিভ করবে।
৭. FCM দিয়ে পুশ নোটিফিকেশন পাঠানোর REST API
FCM REST API ব্যবহার করে প্রোগ্রাম্যাটিকভাবে মেসেজ পাঠানো সম্ভব। এটি সাধারণত সার্ভার থেকে ব্যবহার করা হয়, যেখানে একটি HTTP POST রিকোয়েস্ট পাঠানো হয়।
উদাহরণ: cURL দিয়ে পুশ নোটিফিকেশন পাঠানো
curl -X POST -H "Authorization: key=YOUR_SERVER_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "USER_DEVICE_FCM_TOKEN",
"notification": {
"title": "Test Notification",
"body": "This is a test notification sent via FCM API"
}
}' https://fcm.googleapis.com/fcm/send
এখানে YOUR_SERVER_KEY হল Firebase প্রজেক্টের সার্ভার কী, যা Firebase Console থেকে পাওয়া যায়। USER_DEVICE_FCM_TOKEN এ ব্যবহারকারীর ডিভাইস টোকেন দিতে হবে।
উপসংহার
Firebase Cloud Messaging (FCM) এর মাধ্যমে Android অ্যাপ্লিকেশনে পুশ নোটিফিকেশন সিস্টেম তৈরি করা সহজ এবং কার্যকর। এটি ব্যবহার করে ব্যবহারকারীকে বিভিন্ন আপডেট, বিজ্ঞপ্তি, এবং অন্যান্য জরুরি বার্তা দ্রুত পাঠানো যায়। FCM সেটআপের ধাপগুলো অনুসরণ করে আপনি সহজেই আপনার অ্যাপ্লিকেশনে পুশ নোটিফিকেশন ইন্টিগ্রেট করতে পারেন এবং ব্যবহারকারীদের সাথে ইন্টারঅ্যাকশনের মাত্রা বৃদ্ধি করতে পারেন।
Read more