बैकग्राउंड में रखे गए Apple ऐप्लिकेशन पर टेस्ट मैसेज भेजें

FCM का इस्तेमाल शुरू करने के लिए, सबसे आसान यूज़ केस बनाएं: जब ऐप्लिकेशन डिवाइस पर बैकग्राउंड में हो, तब सूचनाएं कंपोज़र से, डिवाइस पर टेस्ट सूचना मैसेज भेजना. इस पेज पर, सेटअप से लेकर पुष्टि तक की सभी प्रक्रिया के बारे में बताया गया है. अगर आपने FCM के लिए Apple क्लाइंट ऐप्लिकेशन सेट अप किया है, तो हो सकता है कि इस पेज पर वे चरण भी शामिल हों जिन्हें आपने पहले ही पूरा कर लिया है.

अपने Apple प्रोजेक्ट में Firebase जोड़ना

अगर आपने अपने ऐप्लिकेशन के लिए Firebase की अन्य सुविधाएं पहले ही चालू कर दी हैं, तो हो सकता है कि आपने इस सेक्शन में बताए गए टास्क पूरे कर लिए हों. खास तौर पर, FCM के लिए, आपको अपनी APNs पुष्टि करने वाली कुंजी अपलोड करनी होगी और रिमोट सूचनाओं के लिए रजिस्टर करना होगा.

ज़रूरी शर्तें

  • ये इंस्टॉल करें:

    • Xcode 15.2 या उसके बाद का वर्शन
  • पक्का करें कि आपका प्रोजेक्ट इन ज़रूरी शर्तों को पूरा करता हो:

    • आपका प्रोजेक्ट, प्लैटफ़ॉर्म के इन वर्शन या इसके बाद के वर्शन को टारगेट करना चाहिए:
      • iOS 13
      • macOS 10.15
      • tvOS 13
      • watchOS 7
  • अपना ऐप्लिकेशन चलाने के लिए, Apple का कोई फ़िज़िकल डिवाइस सेट अप करें और ये टास्क पूरे करें:

    • अपने Apple डेवलपर खाते के लिए, Apple Push Notification Authentication Key पाएं.
    • XCode में, ऐप्लिकेशन > सुविधाएं में जाकर पुश नोटिफ़िकेशन की सुविधा चालू करें.

अगर आपके पास पहले से कोई Xcode प्रोजेक्ट नहीं है और आपको सिर्फ़ Firebase प्रॉडक्ट आज़माना है, तो शुरुआती निर्देशों वाले हमारे किसी सैंपल को डाउनलोड करें.

Firebase प्रोजेक्ट बनाना

अपने Apple ऐप्लिकेशन में Firebase जोड़ने से पहले, आपको अपने ऐप्लिकेशन से कनेक्ट करने के लिए Firebase प्रोजेक्ट बनाना होगा. Firebase प्रोजेक्ट के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी लेख पढ़ें.

अपने ऐप्लिकेशन को Firebase के साथ रजिस्टर करना

अपने Apple ऐप्लिकेशन में Firebase का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन को अपने Firebase प्रोजेक्ट के साथ रजिस्टर करना होगा. अपने ऐप्लिकेशन को रजिस्टर करने को, अक्सर अपने प्रोजेक्ट में ऐप्लिकेशन को "जोड़ना" कहा जाता है.

  1. Firebase console पर जाएं.

  2. प्रोजेक्ट की खास जानकारी वाले पेज के बीच में, सेटअप वर्कफ़्लो को लॉन्च करने के लिए, iOS+ आइकॉन पर क्लिक करें.

    अगर आपने अपने Firebase प्रोजेक्ट में पहले से ही कोई ऐप्लिकेशन जोड़ लिया है, तो प्लैटफ़ॉर्म के विकल्प दिखाने के लिए, ऐप्लिकेशन जोड़ें पर क्लिक करें.

  3. बंडल आईडी फ़ील्ड में, अपने ऐप्लिकेशन का बंडल आईडी डालें.

  4. (ज़रूरी नहीं) ऐप्लिकेशन की अन्य जानकारी डालें: ऐप्लिकेशन का कोई दूसरा नाम और App Store आईडी.

  5. ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.

Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ना

  1. Firebase के Apple प्लैटफ़ॉर्म की कॉन्फ़िगरेशन फ़ाइल (GoogleService-Info.plist) पाने के लिए, GoogleService-Info.plist डाउनलोड करें पर क्लिक करें.

  2. अपनी कॉन्फ़िगरेशन फ़ाइल को Xcode प्रोजेक्ट के रूट में ले जाएं. अगर आपसे कहा जाए, तो सभी टारगेट में कॉन्फ़िगरेशन फ़ाइल जोड़ने का विकल्प चुनें.

अगर आपके प्रोजेक्ट में एक से ज़्यादा बंडल आईडी हैं, तो आपको हर बंडल आईडी को Firebase कंसोल में रजिस्टर किए गए ऐप्लिकेशन से जोड़ना होगा. इससे हर ऐप्लिकेशन के पास अपनी GoogleService-Info.plist फ़ाइल हो सकती है.

अपने ऐप्लिकेशन में Firebase SDK टूल जोड़ना

Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.

  1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलकर, फ़ाइल > पैकेज जोड़ें पर जाएं.
  2. जब कहा जाए, तब Firebase के Apple प्लैटफ़ॉर्म के SDK टूल का रिपॉज़िटरी जोड़ें:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Firebase Cloud Messaging लाइब्रेरी चुनें.
  5. अपने टारगेट की बिल्ड सेटिंग के अन्य लिंकर फ़्लैग सेक्शन में -ObjC फ़्लैग जोड़ें.
  6. Firebase Cloud Messaging का बेहतर अनुभव पाने के लिए, हमारा सुझाव है कि आप अपने Firebase प्रोजेक्ट में Google Analytics को चालू करें और अपने ऐप्लिकेशन में 'Firebase के लिए Google Analytics' SDK टूल जोड़ें. आपके पास IDFA कलेक्शन के साथ या बिना IDFA कलेक्शन वाली लाइब्रेरी चुनने का विकल्प होता है.
  7. प्रोसेस पूरी होने के बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी को अपने-आप हल और डाउनलोड करना शुरू कर देगा.

APNs की पुष्टि करने वाली कुंजी अपलोड करना

Firebase में APNs की पुष्टि करने वाली कुंजी अपलोड करें. अगर आपके पास पहले से APNs की पुष्टि करने वाली कोई कुंजी नहीं है, तो Apple Developer Member Center में जाकर एक कुंजी बनाएं.

  1. Firebase कंसोल में अपने प्रोजेक्ट में, गियर आइकॉन चुनें. इसके बाद, प्रोजेक्ट सेटिंग चुनें और फिर क्लाउड मैसेजिंग टैब चुनें.

  2. iOS ऐप्लिकेशन कॉन्फ़िगरेशन में जाकर, APNs की पुष्टि करने वाली कुंजी में, अपलोड करें बटन पर क्लिक करें.

  3. उस जगह पर ब्राउज़ करें जहां आपने अपनी पासकोड सेव किया है. इसके बाद, उसे चुनें और खोलें पर क्लिक करें. पासकोड के लिए पासकोड आईडी जोड़ें. यह आईडी, Apple Developer Member Center में उपलब्ध होता है. इसके बाद, अपलोड करें पर क्लिक करें.

अपने ऐप्लिकेशन में Firebase को शुरू करना

आपको अपने ऐप्लिकेशन में Firebase को शुरू करने वाला कोड जोड़ना होगा. Firebase मॉड्यूल इंपोर्ट करें और शेयर किए गए इंस्टेंस को इस तरह कॉन्फ़िगर करें:

  1. अपने UIApplicationDelegate में FirebaseCore मॉड्यूल के साथ-साथ, उन सभी Firebase मॉड्यूल को इंपोर्ट करें जिनका इस्तेमाल आपका ऐप्लिकेशन डेलीगेट करता है. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. अपने ऐप्लिकेशन डेलीगेट के application(_:didFinishLaunchingWithOptions:) तरीके में, FirebaseApp शेयर किया गया इंस्टेंस कॉन्फ़िगर करें:

    SwiftUI

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

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको एक ऐप्लिकेशन डेलीगेट बनाना होगा और उसे UIApplicationDelegateAdaptor या NSApplicationDelegateAdaptor के ज़रिए अपने App स्ट्रक्चर से अटैच करना होगा. आपको ऐप्लिकेशन डेलीगेट स्विज़लिंग की सुविधा भी बंद करनी होगी. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

रिमोट सूचनाओं के लिए रजिस्टर करना

ऐप्लिकेशन शुरू होने पर या अपने ऐप्लिकेशन फ़्लो में किसी भी समय, रिमोट सूचनाओं के लिए अपने ऐप्लिकेशन को रजिस्टर करें. registerForRemoteNotifications को इस तरह कॉल करें:

Swift

UNUserNotificationCenter.current().delegate = self

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

application.registerForRemoteNotifications()

Objective-C

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

[application registerForRemoteNotifications];

रजिस्ट्रेशन टोकन ऐक्सेस करना

किसी डिवाइस पर मैसेज भेजने के लिए, आपको उस डिवाइस का रजिस्टरेशन टोकन पता होना चाहिए. इस ट्यूटोरियल को पूरा करने के लिए, आपको सूचनाएं कंपोजर में किसी फ़ील्ड में टोकन डालना होगा. इसलिए, टोकन को वापस पाने के बाद, उसे कॉपी करना न भूलें या सुरक्षित तरीके से सेव करें.

डिफ़ॉल्ट रूप से, FCM SDK टूल, ऐप्लिकेशन लॉन्च होने पर क्लाइंट ऐप्लिकेशन इंस्टेंस के लिए रजिस्ट्रेशन टोकन जनरेट करता है. APNs डिवाइस टोकन की तरह ही, इस टोकन की मदद से अपने ऐप्लिकेशन के किसी भी खास इंस्टेंस पर टारगेट की गई सूचनाएं भेजी जा सकती हैं.

जिस तरह Apple के प्लैटफ़ॉर्म आम तौर पर ऐप्लिकेशन के शुरू होने पर APNs डिवाइस टोकन डिलीवर करते हैं उसी तरह, FCM FIRMessagingDelegate के messaging:didReceiveRegistrationToken: तरीके से रजिस्टरेशन टोकन उपलब्ध कराता है. FCM SDK टूल, ऐप्लिकेशन के लॉन्च होने के दौरान नया या मौजूदा टोकन हासिल करता है. साथ ही, टोकन अपडेट होने या अमान्य होने पर भी ऐसा करता है. सभी मामलों में, FCM SDK टूल, मान्य टोकन के साथ messaging:didReceiveRegistrationToken: को कॉल करता है.

रजिस्ट्रेशन टोकन तब बदल सकता है, जब:

  • ऐप्लिकेशन को नए डिवाइस पर वापस लाया गया हो
  • उपयोगकर्ता ऐप्लिकेशन को अनइंस्टॉल करता है/फिर से इंस्टॉल करता है
  • उपयोगकर्ता, ऐप्लिकेशन का डेटा मिटाता है.

मैसेजिंग ऐक्सेस देने के लिए किसी व्यक्ति को चुनना

रजिस्ट्रेशन टोकन पाने के लिए, मैसेजिंग डेलिगेट प्रोटोकॉल लागू करें और [FIRApp configure] को कॉल करने के बाद, FIRMessaging की delegate प्रॉपर्टी सेट करें. उदाहरण के लिए, अगर आपका ऐप्लिकेशन डेलिगेट, मैसेजिंग डेलिगेट प्रोटोकॉल के मुताबिक है, तो डेलिगेट को application:didFinishLaunchingWithOptions: पर सेट किया जा सकता है.

Swift

Messaging.messaging().delegate = self

Objective-C

[FIRMessaging messaging].delegate = self;

मौजूदा रजिस्ट्रेशन टोकन को फ़ेच करना

रजिस्ट्रेशन टोकन, messaging:didReceiveRegistrationToken: तरीके से डिलीवर किए जाते हैं. आम तौर पर, इस तरीके को हर बार ऐप्लिकेशन के शुरू होने पर, एक बार रजिस्ट्रेशन टोकन के साथ कॉल किया जाता है. इस मेथड को कॉल करने का सही समय यह है:

  • अगर रजिस्ट्रेशन टोकन नया है, तो उसे अपने ऐप्लिकेशन सर्वर पर भेजें.
  • रजिस्ट्रेशन टोकन को विषयों की सदस्यता दें. यह सिर्फ़ नई सदस्यताओं के लिए ज़रूरी है या उन स्थितियों में ज़रूरी है जहां उपयोगकर्ता ने ऐप्लिकेशन को फिर से इंस्टॉल किया है.

token(completion:) का इस्तेमाल करके, सीधे टोकन को वापस पाया जा सकता है. अगर टोकन वापस पाने में किसी तरह की गड़बड़ी होती है, तो गड़बड़ी का कोई नॉल वैल्यू वाला मैसेज दिया जाता है.

Swift

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

Objective-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;
  }
}];

टोकन को सेव करने के बजाय, उसे ऐक्सेस करने के लिए, इस तरीके का इस्तेमाल कभी भी किया जा सकता है.

टोकन रीफ़्रेश को मॉनिटर करना

टोकन के अपडेट होने पर सूचना पाने के लिए, मैसेजिंग डेलिगेट प्रोटोकॉल के मुताबिक कोई डेलिगेट दें. यहां दिए गए उदाहरण में, प्रतिनिधि को रजिस्टर किया गया है और सही प्रतिनिधि का तरीका जोड़ा गया है:

Swift

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

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

इसके अलावा, किसी डिलीगेट तरीके को देने के बजाय, NSNotification नाम वाले kFIRMessagingRegistrationTokenRefreshNotification इवेंट को सुना जा सकता है. टोकन प्रॉपर्टी में हमेशा टोकन की मौजूदा वैल्यू होती है.

सूचना मैसेज भेजना

  1. टारगेट किए गए डिवाइस पर ऐप्लिकेशन इंस्टॉल करें और चलाएं. Apple डिवाइसों पर, आपको रिमोट सूचनाएं पाने के लिए अनुमति का अनुरोध स्वीकार करना होगा.

  2. पक्का करें कि ऐप्लिकेशन, डिवाइस पर बैकग्राउंड में चल रहा हो.

  3. Firebase कंसोल में, मैसेज सेवा वाला पेज खोलें.

  4. अगर यह आपका पहला मैसेज है, तो अपना पहला कैंपेन बनाएं को चुनें.

    1. Firebase सूचना मैसेज चुनें और बनाएं चुनें.
  5. इसके अलावा, कैंपेन टैब में, नया कैंपेन चुनें. इसके बाद, सूचनाएं चुनें.

  6. मैसेज का टेक्स्ट डालें. बाकी सभी फ़ील्ड ज़रूरी नहीं हैं.

  7. दाएं पैनल से, जांच मैसेज भेजें को चुनें.

  8. FCM रजिस्ट्रेशन टोकन जोड़ें लेबल वाले फ़ील्ड में, वह रजिस्ट्रेशन टोकन डालें जो आपको इस गाइड के पिछले सेक्शन में मिला था.

  9. जांचें को चुनें.

जांच करें चुनने के बाद, टारगेट किए गए क्लाइंट डिवाइस (जिस पर ऐप्लिकेशन बैकग्राउंड में चल रहा है) को सूचना मिलनी चाहिए.

अपने ऐप्लिकेशन पर मैसेज डिलीवरी की अहम जानकारी पाने के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें. इसमें, Apple और Android डिवाइसों पर भेजे गए और खोले गए मैसेज की संख्या के साथ-साथ, Android ऐप्लिकेशन के लिए "इंप्रेशन" (उपयोगकर्ताओं को मिली सूचनाएं) का डेटा भी रिकॉर्ड किया जाता है.

अगले चरण

सूचना मैसेज के अलावा, अपने ऐप्लिकेशन में और भी बेहतर सुविधाएं जोड़ने के लिए, यह लेख पढ़ें: