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

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

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

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

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

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

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

    • आपके प्रोजेक्ट को प्लैटफ़ॉर्म के इन वर्शन या इसके बाद के वर्शन को टारगेट करना होगा:
      • iOS 11
      • macOS 10.13 वर्शन
      • TVOS 12
      • WatchOS 6
  • अपना ऐप्लिकेशन चलाने के लिए, एक Apple डिवाइस सेट अप करें और ये काम पूरे करें:

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

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

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

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

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

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

  1. Firebase कंसोल पर जाएं.

  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 पैकेज मैनेजर का इस्तेमाल करें.

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

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

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

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

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

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

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

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

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

    स्विफ़्टयूआई

    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 शेयर किए गए इंस्टेंस को कॉन्फ़िगर करें:

    स्विफ़्टयूआई

    // 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 के निर्देश देखें.

    स्विफ़्टयूआई

    @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 टूल ऐप्लिकेशन लॉन्च पर क्लाइंट ऐप्लिकेशन इंस्टेंस के लिए एक रजिस्ट्रेशन टोकन जनरेट करता है. एपीएन डिवाइस टोकन की तरह ही, यह टोकन आपको अपने ऐप्लिकेशन के किसी भी खास इंस्टेंस पर टारगेट की गई सूचनाएं भेजने की सुविधा देता है.

Apple प्लैटफ़ॉर्म जिस तरह आम तौर पर ऐप्लिकेशन शुरू होने पर एपीएन डिवाइस टोकन डिलीवर करते हैं उसी तरह 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(complete:) का इस्तेमाल करके, सीधे तौर पर टोकन वापस पाया जा सकता है. अगर टोकन किसी भी तरह से वापस नहीं मिल पाता है, तो एक गड़बड़ी वाला मैसेज दिखाया जाता है.

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

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

सूचना वाला मैसेज भेजें

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

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

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

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

    1. Firebase सूचना मैसेज चुनें और बनाएं चुनें.
  5. या फिर, कैंपेन टैब पर नया कैंपेन चुनें और फिर सूचनाएं चुनें.

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

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

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

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

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

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

अगले चरण

सूचना वाले मैसेज के अलावा, अपने ऐप्लिकेशन में अन्य ऐडवांस सुविधाएं जोड़ने के लिए, इन्हें देखें: