Catch up on everything we announced at this year's Firebase Summit. Learn more

Apple প্ল্যাটফর্মে একটি Firebase ক্লাউড মেসেজিং ক্লায়েন্ট অ্যাপ সেট আপ করুন

Apple ক্লায়েন্ট অ্যাপগুলির জন্য, আপনি Firebase ক্লাউড মেসেজিং APNs ইন্টারফেসের মাধ্যমে 4000 বাইট পর্যন্ত বিজ্ঞপ্তি এবং ডেটা পেলোড পেতে পারেন।

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

APN-এর মাধ্যমে পুশ বিজ্ঞপ্তি পাঠানো সক্ষম করতে, আপনার প্রয়োজন:

  • আপনার অ্যাপল ডেভেলপার অ্যাকাউন্টের জন্য একটি অ্যাপল পুশ বিজ্ঞপ্তি প্রমাণীকরণ কী। Firebase ক্লাউড মেসেজিং অ্যাপ আইডি দ্বারা চিহ্নিত অ্যাপ্লিকেশনে পুশ বিজ্ঞপ্তি পাঠাতে এই টোকেন ব্যবহার করে।

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

আপনি উভয় তৈরি অ্যাপল ডেভেলপার সদস্য সেন্টার

ফায়ারবেস ক্লাউড মেসেজিং-এ মেথড সুইজলিং

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

আপনার Apple প্রকল্পে Firebase যোগ করুন

আপনি যদি ইতিমধ্যে আপনার অ্যাপের জন্য অন্যান্য Firebase বৈশিষ্ট্যগুলি সক্ষম করে থাকেন তবে এই বিভাগে আপনি যে কাজগুলি সম্পন্ন করেছেন তা কভার করে৷ FCM বিশেষভাবে জন্য, আপনি করতে হবে আপনার APN গুলি প্রমাণীকরণ কী আপলোড এবং দূরবর্তী নোটিফিকেশন জন্য রেজিস্টার

পূর্বশর্ত

  • নিম্নলিখিত ইনস্টল করুন:

    • Xcode 12.5 বা তার পরে
  • আপনার প্রকল্প এই প্রয়োজনীয়তা পূরণ করে তা নিশ্চিত করুন:

    • আপনার প্রজেক্টকে অবশ্যই এই প্ল্যাটফর্ম সংস্করণগুলিকে লক্ষ্য করতে হবে বা পরবর্তীতে:
      • iOS 10
      • macOS 10.12
      • টিভিওএস 12
      • watchOS 6
  • আপনার অ্যাপ্লিকেশন চালানোর জন্য একটি শারীরিক অ্যাপল ডিভাইস সেট আপ করুন এবং এই কাজগুলো সম্পূর্ণ করুন:

    • আপনার জন্য একটি আপেল পুশ নোটিফিকেশন প্রমাণীকরণ কী সংগ্রহ অ্যাপল বিকাশকারী অ্যাকাউন্ট
    • অ্যাপ অধীনে উপর XCode পুশ বিজ্ঞপ্তি সক্ষম করুন> কেপেবিলিটিস।

আপনার কি ইতিমধ্যে একটি Xcode প্রকল্প না থাকলে এবং শুধুমাত্র একটি Firebase পণ্য ব্যবহার করে দেখতে চান, আপনি আমাদের এক বিনামূল্যে ডাউনলোড করতে পারেন দ্রুতশুরু নমুনা

একটি ফায়ারবেস প্রকল্প তৈরি করুন

আপনি আপনার Apple অ্যাপে Firebase যোগ করার আগে, আপনার অ্যাপের সাথে সংযোগ করার জন্য আপনাকে একটি Firebase প্রকল্প তৈরি করতে হবে। পরিদর্শন বুঝুন Firebase প্রকল্প Firebase প্রকল্পগুলি সম্পর্কে আরও জানতে।

Firebase এর সাথে আপনার অ্যাপ নিবন্ধন করুন

আপনার একটি ফায়ারবেস প্রজেক্ট হওয়ার পরে, আপনি এতে আপনার Apple অ্যাপ যোগ করতে পারেন।

পরিদর্শন বুঝুন Firebase প্রকল্প একটি Firebase প্রকল্পে অ্যাপ্লিকেশান যোগ করে, কীভাবে একাধিক বিল্ড রূপগুলো হ্যান্ডেল করতে সহ সর্বোত্তম কার্যাভ্যাস এবং বিবেচনার সম্পর্কে আরো জানতে।

  1. যান Firebase কনসোল

  2. প্রকল্পের ওভারভিউ পৃষ্ঠায় কেন্দ্রে, সেটআপ কর্মপ্রবাহ আরম্ভ করার জন্য আইওএস + + আইকনে ক্লিক করুন।

    আপনি ইতিমধ্যেই আপনার Firebase প্রকল্পে একটি অ্যাপ্লিকেশন যোগ করে থাকেন, প্ল্যাটফর্ম অপশন প্রদর্শন করে অ্যাপ্লিকেশান যোগ ক্লিক করুন।

  3. বান্ডিল আইডি ক্ষেত্র আপনার অ্যাপ্লিকেশনের বান্ডিল আইডি লিখুন।

  4. অ্যাপ ডাক নাম এবং App স্টোর বা দোকান আইডি: (ঐচ্ছিক) অন্যান্য অ্যাপ্লিকেশনে তথ্য লিখুন।

  5. নিবন্ধন অ্যাপ্লিকেশন ক্লিক করুন।

একটি ফায়ারবেস কনফিগারেশন ফাইল যোগ করুন

  1. আপনার Firebase অ্যাপল প্ল্যাটফর্মের কনফিগ ফাইল (প্রাপ্ত ডাউনলোড GoogleService-Info.plist ক্লিক করুন GoogleService-Info.plist )।

  2. আপনার কনফিগার ফাইলটি আপনার Xcode প্রকল্পের রুটে সরান। অনুরোধ করা হলে, সমস্ত লক্ষ্যে কনফিগার ফাইল যোগ করতে নির্বাচন করুন।

আপনি আপনার প্রকল্পের একাধিক বান্ডল ID- র থাকে, তাহলে আপনি Firebase কনসোল প্রতিটি অ্যাপের নিজস্ব থাকতে পারে, ফলে যে নিবন্ধিত অ্যাপ্লিকেশন দিয়ে প্রতিটি বান্ডেলের আইডি সংশ্লিষ্ট করতে হবে GoogleService-Info.plist ফাইল।

আপনার অ্যাপে Firebase SDK যোগ করুন

ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

  1. Xcode ক্ষেত্রে File খোলা আপনার অ্যাপ প্রকল্পের, নেভিগেট সঙ্গে> সুইফট প্যাকেজগুলি> প্যাকেজ নির্ভরতা যুক্ত করো।
  2. অনুরোধ করা হলে, Firebase Apple প্ল্যাটফর্ম SDK সংগ্রহস্থল যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Firebase ক্লাউড মেসেজিং লাইব্রেরি বেছে নিন।
  5. Firebase ক্লাউড মেসেজিং সঙ্গে একটি অনুকূল অভিজ্ঞতার জন্য, আমরা প্রস্তাব Google এনালিটিক্স সক্রিয় আপনার Firebase প্রকল্পে এবং আপনার অ্যাপ্লিকেশানে Google এনালিটিক্স জন্য Firebase SDK এর যোগ। আপনি IDFA সংগ্রহ ছাড়াই অথবা IDFA সংগ্রহের মাধ্যমে লাইব্রেরি নির্বাচন করতে পারেন।
  6. শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে পটভূমিতে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।

আপনার APN প্রমাণীকরণ কী আপলোড করুন

Firebase-এ আপনার APN-এর প্রমাণীকরণ কী আপলোড করুন। আপনার কি ইতিমধ্যে একটি APN গুলি প্রমাণীকরণ কী না পারে, তবে একটি তৈরি করতে ভুলবেন না অ্যাপল ডেভেলপার সদস্য সেন্টার

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

  2. IOS অ্যাপ্লিকেশন কনফিগারেশন অধীনে APN গুলি প্রমাণীকরণ কী সালে আপলোড বাটন ক্লিক করুন।

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

আপনার অ্যাপে Firebase চালু করুন

আপনাকে আপনার অ্যাপ্লিকেশনে Firebase প্রাথমিককরণ কোড যোগ করতে হবে। Firebase মডিউল আমদানি করুন এবং দেখানো হিসাবে একটি ভাগ করা উদাহরণ কনফিগার করুন:

  1. আপনার Firebase মডিউল আমদানি UIApplicationDelegate :

    সুইফট

    import Firebase

    উদ্দেশ্য গ

    @import Firebase;
  2. কনফিগার একটি FirebaseApp , উদাহরণস্বরূপ ভাগ সাধারণত আপনার অ্যাপ্লিকেশনের মধ্যে application:didFinishLaunchingWithOptions: পদ্ধতি:

    সুইফট

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    উদ্দেশ্য গ

    // Use Firebase library to configure APIs
    [FIRApp configure];

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

হয় স্টার্টআপে, বা আপনার অ্যাপ্লিকেশন প্রবাহের পছন্দসই পয়েন্টে, দূরবর্তী বিজ্ঞপ্তিগুলির জন্য আপনার অ্যাপ নিবন্ধন করুন৷ ফোন করুন registerForRemoteNotifications দেখানো হয়েছে:

সুইফট

if #available(iOS 10.0, *) {
  // For iOS 10 display notification (sent via APNS)
  UNUserNotificationCenter.current().delegate = self

  let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
  UNUserNotificationCenter.current().requestAuthorization(
    options: authOptions,
    completionHandler: { _, _ in }
  )
} else {
  let settings: UIUserNotificationSettings =
    UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
  application.registerUserNotificationSettings(settings)
}

application.registerForRemoteNotifications()

উদ্দেশ্য গ

if ([UNUserNotificationCenter class] != nil) {
  // iOS 10 or later
  // For iOS 10 display notification (sent via APNS)
  [UNUserNotificationCenter currentNotificationCenter].delegate = self;
  UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
      UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
  [[UNUserNotificationCenter currentNotificationCenter]
      requestAuthorizationWithOptions:authOptions
      completionHandler:^(BOOL granted, NSError * _Nullable error) {
        // ...
      }];
} else {
  // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
  UIUserNotificationType allNotificationTypes =
  (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
  UIUserNotificationSettings *settings =
  [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
  [application registerUserNotificationSettings:settings];
}

[application registerForRemoteNotifications];

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

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

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

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

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

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

নিবন্ধন টোকেন পেতে, মেসেজিং প্রতিনিধি প্রোটোকল এবং সেট বাস্তবায়ন FIRMessaging এর delegate কলিং পর সম্পত্তি [FIRApp configure] । উদাহরণস্বরূপ, আপনার আবেদন প্রতিনিধি মেসেজিং প্রতিনিধি প্রোটোকল কে কনর্ফাম করে থাকে, তাহলে আপনি প্রতিনিধি উপর সেট করতে পারেন application:didFinishLaunchingWithOptions: নিজেই।

সুইফট

Messaging.messaging().delegate = self

উদ্দেশ্য গ

[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)"
  }
}

উদ্দেশ্য গ

[[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.
}

উদ্দেশ্য গ

- (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.
}

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

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

আপনি যদি মেথড সুইজলিং অক্ষম করে থাকেন, তাহলে আপনাকে স্পষ্টভাবে FCM রেজিস্ট্রেশন টোকেনে আপনার APN টোকেন ম্যাপ করতে হবে। পদ্ধতি ওভাররাইড didRegisterForRemoteNotificationsWithDeviceToken পুনরুদ্ধার করতে APN গুলি টোকেন এবং তারপর সেট FIRMessaging এর APNSToken সম্পত্তি:

সুইফট

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

উদ্দেশ্য গ

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

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

স্বয়ংক্রিয় সূচনা প্রতিরোধ করুন

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

FirebaseMessagingAutoInitEnabled = NO

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

সুইফট

Messaging.messaging().autoInitEnabled = true

উদ্দেশ্য গ

[FIRMessaging messaging].autoInitEnabled = YES;

একবার সেট করার পরে এই মানটি অ্যাপ রিস্টার্ট জুড়ে থাকে।

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

আপনি আপনার Apple ক্লায়েন্ট সেট আপ করার পরে, আপনি আপনার অ্যাপে বার্তা পরিচালনা এবং অন্যান্য, আরও উন্নত আচরণ যোগ করতে প্রস্তুত। আরও তথ্যের জন্য এই নির্দেশিকাগুলি দেখুন: