Aşağıdaki örnekler, Instance-ID'yi bir iOS istemcisinde uygulamanıza yardımcı olacaktır. Bu örneklerde, Firebase Cloud Messaging için iOS istemcisinin jetonlarını yönetmek üzere kullanacağınız GCM kapsamının kullanıldığını unutmayın.
CocoaPods bağımlılarınızı ayarlama
Örnek kimliği, bağımlılıkları yüklemek ve yönetmek için CocoaPods'u kullanır. Bir terminal penceresi açın ve uygulamanıza ait Xcode projesinin konumuna gidin. Uygulamanız için henüz bir Podfile oluşturmadıysanız hemen bir tane oluşturun:
pod init
Uygulamanız için oluşturulan Podfile dosyasını açın ve aşağıdakileri ekleyin:
pod 'FirebaseInstanceId'
Dosyayı kaydedin ve şunu çalıştırın:
pod install
Bu işlem, uygulamanız için bir .xcworkspace
dosyası oluşturur. Bu dosyayı uygulamanızda ileride yapılacak tüm geliştirmeler için kullanın.
Jeton oluşturma
Jeton oluşturmak için Google Developers Console tarafından oluşturulmuş bir proje kimliği gerekir.
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) {
// ...
}];
Jetonları ve örnek kimliklerini yönetme
Örnek kimliği, jetonları silmenize ve yenilemenize olanak tanır.
Jetonları ve örnek kimliklerini silme
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];
Örnek kimliğini de silebilirsiniz. Bu durumda, getInstance()
çağrısını bir sonraki sefer yaptığınızda yeni bir örnek kimliği alırsınız:
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Yenileme jetonları
Instance ID hizmeti, jeton oluşturabilir veya yeniden oluşturabilir. Bu durumda bir bildirim gönderilir. kFIRInstanceIDTokenRefreshNotification
adlı bildirimler için bir gözlemci ekleyerek bu bildirimi dinleyebilirsiniz.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Bu gözlemci, jeton oluşturulmadan önce oluşturulmalıdır (ör. [FIRApp configure]
çağrılmadan önce). [[FIRInstanceID instanceID] token]
çağrısı yapılarak en son jeton alınabilir.
Cloud Messaging için jeton oluşturma işlemini gözlemlemek üzere belirli bir temsilci kullanabileceğinizi unutmayın.