Firebase ক্লাউড মেসেজিং দিয়ে শুরু করুন


আপনার মোবাইল এবং ওয়েব ক্লায়েন্ট অ্যাপে Firebase Cloud Messaging কীভাবে সেট আপ করবেন তা এই কুইকস্টার্ট বর্ণনা করে যাতে আপনি নির্ভরযোগ্যভাবে বার্তা পাঠাতে পারেন। সার্ভার পরিবেশের জন্য, আপনার সার্ভার পরিবেশ এবং FCM দেখুন।

অ্যাপল প্ল্যাটফর্মগুলিতে একটি Firebase Cloud Messaging ক্লায়েন্ট অ্যাপ্লিকেশন সেট আপ করুন

অ্যাপল ক্লায়েন্ট অ্যাপ্লিকেশনগুলির জন্য, আপনি Firebase Cloud Messaging এপিএনএস ইন্টারফেসের উপর 4096 বাইট পর্যন্ত বিজ্ঞপ্তি এবং ডেটা পেডলোডগুলি পেতে পারেন।

আপনার ক্লায়েন্ট কোডটি অবজেক্টিভ-সি বা সুইফটে লিখতে, আমরা আপনাকে ফার্মাসাইজিং এপিআই ব্যবহার করার পরামর্শ দিই। কুইকস্টার্ট উদাহরণ উভয় ভাষার জন্য নমুনা কোড সরবরাহ করে।

আপনি শুরু করার আগে, আপনার অ্যাপল প্রকল্পে ফায়ারবেস যুক্ত করুন

Firebase Cloud Messaging পদ্ধতি সুইজলিং

FCM এসডিকে দুটি মূল ক্ষেত্রে সুইজলিং পদ্ধতি সম্পাদন করে: আপনার এপিএন টোকেনকে FCM রেজিস্ট্রেশন টোকেনে ম্যাপিং করা এবং ডাউনস্ট্রিম বার্তা কলব্যাক হ্যান্ডলিংয়ের সময় বিশ্লেষণ ডেটা ক্যাপচার করা। বিকাশকারীরা যারা সুইজলিং ব্যবহার না করা পছন্দ করেন তারা অ্যাপ্লিকেশনটির তথ্য.প্লিস্ট ফাইলটিতে ফ্ল্যাগ FirebaseAppDelegateProxyEnabled যুক্ত করে এটি অক্ষম করতে পারেন এবং এটিকে কোনও (বুলিয়ান মান) এ সেট করে। গাইডগুলির প্রাসঙ্গিক ক্ষেত্রগুলি কোড উদাহরণ সরবরাহ করে, উভয়ই পদ্ধতিযুক্ত সুইজলিং সক্ষম করে।

আপনার এপিএনএস প্রমাণীকরণ কী আপলোড করুন

ফায়ারবেসে আপনার এপিএনএস প্রমাণীকরণ কী আপলোড করুন। আপনার যদি ইতিমধ্যে কোনও এপিএনএস প্রমাণীকরণ কী না থাকে তবে অ্যাপল বিকাশকারী সদস্য কেন্দ্রে একটি তৈরি করার বিষয়টি নিশ্চিত করুন।

  1. Firebase কনসোলে আপনার প্রকল্পের অভ্যন্তরে গিয়ার আইকনটি নির্বাচন করুন, প্রকল্প সেটিংস নির্বাচন করুন এবং তারপরে ক্লাউড মেসেজিং ট্যাবটি নির্বাচন করুন।

  2. আইওএস অ্যাপ্লিকেশন কনফিগারেশনের অধীনে এপিএনএস প্রমাণীকরণ কীতে , আপনার বিকাশ প্রমাণীকরণ কী, বা উত্পাদন প্রমাণীকরণ কী, বা উভয়ই আপলোড করতে আপলোড বোতামটি ক্লিক করুন। কমপক্ষে একটি প্রয়োজন।

  3. আপনি যেখানে আপনার কীটি সংরক্ষণ করেছেন সেখানে ব্রাউজ করুন, এটি নির্বাচন করুন এবং খুলুন ক্লিক করুন। কীটির জন্য কী আইডি যুক্ত করুন ( অ্যাপল বিকাশকারী সদস্য কেন্দ্রে উপলব্ধ) এবং আপলোড ক্লিক করুন।

দূরবর্তী বিজ্ঞপ্তিগুলির জন্য নিবন্ধন করুন

হয় স্টার্টআপে, বা আপনার অ্যাপ্লিকেশন প্রবাহের কাঙ্ক্ষিত পয়েন্টে, দূরবর্তী বিজ্ঞপ্তির জন্য আপনার অ্যাপ্লিকেশনটি নিবন্ধ করুন। দেখানো হিসাবে registerForRemoteNotifications কল করুন:

সুইফট

UNUserNotificationCenter.current().delegate = self

let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
  options: authOptions,
  completionHandler: { _, _ in }
)

application.registerForRemoteNotifications()

উদ্দেশ্য-C

[UNUserNotificationCenter currentNotificationCenter].delegate = self;
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
    UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter]
    requestAuthorizationWithOptions:authOptions
    completionHandler:^(BOOL granted, NSError * _Nullable error) {
      // ...
    }];

[application registerForRemoteNotifications];

নিবন্ধকরণ টোকেন অ্যাক্সেস করুন

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

অ্যাপল প্ল্যাটফর্মগুলি সাধারণত অ্যাপ্লিকেশন শুরুতে একটি এপিএনএস ডিভাইস টোকেন সরবরাহ করে, এফসিএম FIRMessagingDelegate messaging:didReceiveRegistrationToken: পদ্ধতি। এফসিএম এসডিকে প্রাথমিক অ্যাপ্লিকেশন লঞ্চের সময় একটি নতুন বা বিদ্যমান টোকেন পুনরুদ্ধার করে এবং যখনই টোকেন আপডেট করা হয় বা অবৈধ হয়। সমস্ত ক্ষেত্রে, এফসিএম এসডিকে messaging:didReceiveRegistrationToken: একটি বৈধ টোকেন সহ।

নিবন্ধকরণ টোকেন যখন পরিবর্তন হতে পারে:

  • অ্যাপটি একটি নতুন ডিভাইসে পুনরুদ্ধার করা হয়েছে
  • ব্যবহারকারী অ্যাপটি আনইনস্টল/পুনরায় ইনস্টল করুন
  • ব্যবহারকারী অ্যাপ্লিকেশন ডেটা সাফ করে।

মেসেজিং প্রতিনিধি সেট করুন

রেজিস্ট্রেশন টোকেনগুলি পেতে, মেসেজিং ডেলিগেট প্রোটোকলটি প্রয়োগ করুন এবং কল করার পরে FIRMessaging delegate সম্পত্তি সেট করুন [FIRApp configure] । উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশন ডেলিগেট মেসেজিং ডেলিগেট প্রোটোকলের সাথে সঙ্গতিপূর্ণ হয় তবে আপনি application:didFinishLaunchingWithOptions: নিজের কাছে।

সুইফট

Messaging.messaging().delegate = self

উদ্দেশ্য-C

[FIRMessaging messaging].delegate = self;

বর্তমান নিবন্ধকরণ টোকেন আনছে

রেজিস্ট্রেশন টোকেনগুলি পদ্ধতি messaging:didReceiveRegistrationToken: । এই পদ্ধতিটিকে সাধারণত একবারে নিবন্ধকরণ টোকেন দিয়ে শুরু করা হয়। যখন এই পদ্ধতিটি বলা হয়, তখন এটি আদর্শ সময়:

  • যদি নিবন্ধকরণ টোকেন নতুন হয় তবে এটি আপনার অ্যাপ্লিকেশন সার্ভারে প্রেরণ করুন।
  • বিষয়গুলিতে নিবন্ধকরণ টোকেন সাবস্ক্রাইব করুন। এটি কেবল নতুন সাবস্ক্রিপশন বা এমন পরিস্থিতিতে যেখানে ব্যবহারকারী অ্যাপটি পুনরায় ইনস্টল করেছেন তার জন্য প্রয়োজনীয়।

আপনি টোকেনটি সরাসরি টোকেন ব্যবহার করে পুনরুদ্ধার করতে পারেন (সমাপ্তি :) । যদি টোকেন পুনরুদ্ধার কোনওভাবে ব্যর্থ হয় তবে একটি নাল ত্রুটি সরবরাহ করা হয়।

সুইফট

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
    self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
  }
}

উদ্দেশ্য-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
  if (error != nil) {
    NSLog(@"Error getting FCM registration token: %@", error);
  } else {
    NSLog(@"FCM registration token: %@", token);
    self.fcmRegTokenMessage.text = token;
  }
}];

টোকেনটি সংরক্ষণের পরিবর্তে অ্যাক্সেস করতে আপনি যে কোনও সময় এই পদ্ধতিটি ব্যবহার করতে পারেন।

টোকেন রিফ্রেশ মনিটর

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

সুইফট

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
  print("Firebase registration token: \(String(describing: fcmToken))")

  let dataDict: [String: String] = ["token": fcmToken ?? ""]
  NotificationCenter.default.post(
    name: Notification.Name("FCMToken"),
    object: nil,
    userInfo: dataDict
  )
  // TODO: If necessary send token to application server.
  // Note: This callback is fired at each app startup and whenever a new token is generated.
}

উদ্দেশ্য-C

- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
    NSLog(@"FCM registration token: %@", fcmToken);
    // Notify about received token.
    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"];
    [[NSNotificationCenter defaultCenter] postNotificationName:
     @"FCMToken" object:nil userInfo:dataDict];
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}

বিকল্পভাবে, আপনি কোনও প্রতিনিধি পদ্ধতি সরবরাহের পরিবর্তে kFIRMessagingRegistrationTokenRefreshNotification নামের একটি NSNotification শুনতে পারেন। টোকেন সম্পত্তিটিতে সর্বদা বর্তমান টোকেন মান থাকে।

সুইজলিং অক্ষম: আপনার এপিএন টোকেন এবং রেজিস্ট্রেশন টোকেন ম্যাপিং

যদি আপনি অক্ষম পদ্ধতিটি সুইজলিং করে থাকেন বা আপনি একটি সুইফটুই অ্যাপ্লিকেশন তৈরি করছেন তবে আপনাকে FCM রেজিস্ট্রেশন টোকেনে স্পষ্টভাবে আপনার এপিএন টোকেনটি মানচিত্র করতে হবে। application(_:didRegisterForRemoteNotificationsWithDeviceToken:) এপিএন টোকেন পুনরুদ্ধার করার পদ্ধতি, এবং তারপরে Messaging apnsToken সম্পত্তি সেট করুন:

সুইফট

func application(application: UIApplication,
                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
  Messaging.messaging().apnsToken = deviceToken
}

উদ্দেশ্য-C

// With "FirebaseAppDelegateProxyEnabled": NO
- (void)application:(UIApplication *)application
    didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    [FIRMessaging messaging].APNSToken = deviceToken;
}

FCM রেজিস্ট্রেশন টোকেন উত্পন্ন হওয়ার পরে, আপনি এটি অ্যাক্সেস করতে পারেন এবং সুইজলিং সক্ষমের মতো একই পদ্ধতিগুলি ব্যবহার করে রিফ্রেশ ইভেন্টগুলি শুনতে পারেন।

অটো সূচনা প্রতিরোধ করুন

যখন কোনও FCM রেজিস্ট্রেশন টোকেন উত্পন্ন হয়, গ্রন্থাগারটি ফায়ারবেসে সনাক্তকারী এবং কনফিগারেশন ডেটা আপলোড করে। আপনি যদি প্রথমে ব্যবহারকারীদের কাছ থেকে একটি সুস্পষ্ট অপ্ট-ইন পেতে চান তবে আপনি এফসিএম অক্ষম করে কনফিগার করার সময় টোকেন প্রজন্মকে প্রতিরোধ করতে পারেন। এটি করার জন্য, আপনার Info.plist একটি মেটাডেটা মান যুক্ত করুন (আপনার GoogleService-Info.plist নয়):

FirebaseMessagingAutoInitEnabled = NO

এফসিএম পুনরায় সক্ষম করতে, আপনি একটি রানটাইম কল করতে পারেন:

সুইফট

Messaging.messaging().autoInitEnabled = true

উদ্দেশ্য-C

[FIRMessaging messaging].autoInitEnabled = YES;

এই মানটি একবার সেট হয়ে গেলে অ্যাপটি পুনরায় চালু করে।

একটি বিজ্ঞপ্তি বার্তা প্রেরণ করুন

  1. লক্ষ্য ডিভাইসে অ্যাপটি ইনস্টল করুন এবং চালান। অ্যাপল ডিভাইসগুলিতে, দূরবর্তী বিজ্ঞপ্তিগুলি পাওয়ার জন্য অনুরোধটি গ্রহণ করুন।
  2. অ্যাপ্লিকেশনটি ডিভাইসের পটভূমিতে রয়েছে কিনা তা পরীক্ষা করে দেখুন।
  3. ফায়ারবেস কনসোলে, মেসেজিং পৃষ্ঠাটি খুলুন।
  4. যদি এটি আপনার প্রথম বার্তা হয় তবে আপনার প্রথম প্রচারটি তৈরি করুন নির্বাচন করুন।
    1. ফায়ারবেস বিজ্ঞপ্তি বার্তা নির্বাচন করুন এবং তৈরি নির্বাচন করুন।
  5. অন্যথায়, প্রচারের ট্যাবে, নতুন প্রচার এবং তারপরে বিজ্ঞপ্তিগুলি নির্বাচন করুন।
  6. বার্তা টেক্সট লিখুন.
  7. ডান ফলক থেকে পরীক্ষার বার্তা প্রেরণ করুন নির্বাচন করুন।
  8. লেবেলযুক্ত ক্ষেত্রটিতে একটি FCM নিবন্ধকরণ টোকেন যুক্ত করুন , আপনার নিবন্ধকরণ টোকেন প্রবেশ করুন।
  9. পরীক্ষা নির্বাচন করুন।

আপনি পরীক্ষা নির্বাচন করার পরে, পটভূমিতে অ্যাপ সহ লক্ষ্যযুক্ত ক্লায়েন্ট ডিভাইসটি বিজ্ঞপ্তিটি গ্রহণ করা উচিত।

আপনার অ্যাপ্লিকেশনটিতে বার্তা সরবরাহের অন্তর্দৃষ্টির জন্য, FCM রিপোর্টিং ড্যাশবোর্ডটি দেখুন, যা অ্যাপল এবং অ্যান্ড্রয়েড ডিভাইসে প্রেরিত এবং খোলা বার্তাগুলির সংখ্যা রেকর্ড করে।

পরবর্তী পদক্ষেপ

আপনি আপনার অ্যাপল ক্লায়েন্ট সেট আপ করার পরে, আপনি আপনার ব্যবহারকারীদের কাছে বার্তা গ্রহণ এবং প্রেরণ শুরু করতে পারেন: