iOS বাস্তবায়ন

নিম্নলিখিত উদাহরণগুলো আপনাকে একটি iOS ক্লায়েন্টে ইনস্ট্যান্স আইডি প্রয়োগ করতে সাহায্য করবে। উল্লেখ্য যে, এই উদাহরণগুলোতে GCM স্কোপ ব্যবহার করা হয়েছে, যা আপনি Firebase Cloud Messaging- এর জন্য একটি iOS ক্লায়েন্টের টোকেন পরিচালনা করতে ব্যবহার করবেন।

আপনার CocoaPods নির্ভরতাগুলি সেট আপ করুন

ইনস্ট্যান্স আইডি ডিপেন্ডেন্সি ইনস্টল এবং পরিচালনা করতে কোকোয়া পডস (CocoaPods) ব্যবহার করে। একটি টার্মিনাল উইন্ডো খুলুন এবং আপনার অ্যাপ্লিকেশনের এক্সকোড (Xcode) প্রজেক্টের অবস্থানে যান। যদি আপনি আপনার অ্যাপ্লিকেশনের জন্য আগে থেকে কোনো পডফাইল (Podfile) তৈরি না করে থাকেন, তবে এখনই একটি তৈরি করুন:

pod init

আপনার অ্যাপ্লিকেশনের জন্য তৈরি করা Podfile-টি খুলুন এবং নিম্নলিখিত বিষয়গুলো যোগ করুন:

pod 'FirebaseInstanceId'

ফাইলটি সংরক্ষণ করুন এবং চালান:

pod install

এটি আপনার অ্যাপ্লিকেশনের জন্য একটি .xcworkspace ফাইল তৈরি করে। আপনার অ্যাপ্লিকেশনের ভবিষ্যৎ সকল উন্নয়নের জন্য এই ফাইলটি ব্যবহার করুন।

একটি টোকেন তৈরি করুন

টোকেন তৈরি করার জন্য গুগল ডেভেলপারস কনসোল দ্বারা তৈরি একটি প্রজেক্ট আইডি প্রয়োজন।

NSString *authorizedEntity = PROJECT_ID;
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
NSDictionary *options = @{
  @"apns_token" : <APNS Token data>,
  // 1 if APNS sandbox token else 0
  @"apns_sandbox" : @(1),
};
[[FIRInstanceID instanceID] tokenWithAuthorizedEntity:authorizedEntity
                                                scope:scope
                                              options:options
                                              handler:
                  ^(NSString * _Nullable token, NSError * _Nullable error) {
                      // ...
}];

টোকেন এবং ইনস্ট্যান্স আইডি পরিচালনা করুন

ইনস্ট্যান্স আইডি আপনাকে টোকেন মুছে ফেলতে এবং রিফ্রেশ করতে দেয়।

টোকেন এবং ইনস্ট্যান্স আইডি মুছে ফেলুন

NSString *authorizedEntity = PROJECT_ID; // Project ID
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
FIRInstanceIDDeleteTokenHandler handler = ^void(NSError *error) {
  if (error) {
    // Failed to delete the token. Check error and do an exponential
    // backoff to retry again.
  } else {
    // Successfully deleted the token.
  }
};
[[FIRInstanceID instanceID]
    deleteTokenWithAuthorizedEntity:authorizedEntity
                              scope:scope
                            handler:handler];

আপনি চাইলে ইনস্ট্যান্স আইডিটি নিজেই মুছে ফেলতে পারেন, সেক্ষেত্রে পরেরবার getInstance() কল করলে আপনি একটি নতুন ইনস্ট্যান্স আইডি পাবেন:

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
      if error != nil {
        NSLog(@"Error deleting instance ID: %@", error);
      }
    }];

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

ইনস্ট্যান্স আইডি সার্ভিস টোকেন তৈরি বা পুনরুৎপাদন করতে পারে। যখন এটি ঘটে, তখন একটি নোটিফিকেশন পাঠানো হবে। আপনি kFIRInstanceIDTokenRefreshNotification নামের নোটিফিকেশনের জন্য একটি অবজারভার যোগ করে এই নোটিফিকেশনটি শুনতে পারেন।

[[NSNotificationCenter defaultCenter] addObserver:self
         selector:@selector(tokenRefreshNotification:) 
         name:kFIRInstanceIDTokenRefreshNotification object:nil];

এই অবজারভারটি টোকেন তৈরি করার আগে তৈরি করতে হবে, উদাহরণস্বরূপ [FIRApp configure] কল করার আগে। সর্বশেষ টোকেনটি [[FIRInstanceID instanceID] token] কল করে পাওয়া যাবে।

উল্লেখ্য যে, ক্লাউড মেসেজিং-এর জন্য টোকেন তৈরি পর্যবেক্ষণ করতে একটি নির্দিষ্ট ডেলিগেট উপলব্ধ রয়েছে।