次の例は、iOS クライアントにインスタンス ID を実装する際に役立ちます。 これらの例では、GCM スコープを使用しています。このスコープを使用して、 使用して、デバイスの iOS クライアントのトークンを Firebase Cloud Messaging。
CocoaPods の依存関係を設定する
インスタンス ID は CocoaPods を使用してインストールと 依存関係の管理を行えます。ターミナル ウィンドウを開き、アプリケーションの Xcode プロジェクトの場所に移動してください。アプリの Podfile をまだ作成していない場合は、ここで作成します。
pod init
アプリ用に作成した Podfile を開き、次の内容を追加します。
pod 'FirebaseInstanceId'
ファイルを保存し、次のコマンドを実行します。
pod install
これにより、アプリケーションの .xcworkspace
ファイルが作成されます。このファイルは、アプリケーションで今後行うあらゆる開発で利用できます。
トークンを生成する
トークンを生成するには、Google Developers Console で生成されたプロジェクト ID が必要です。
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) {
// ...
}];
トークンとインスタンス ID を管理する
インスタンス ID を使用すると、トークンの削除と更新を行うことができます。
トークンとインスタンス ID を削除する
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];
インスタンス ID 自体を削除することもできます。その場合、次回
getInstance()
で新しいインスタンス ID を取得します。
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
更新トークン
インスタンス ID サービスは、トークンの作成や再生成を行うことがあります。この場合
通知が送信されます。この通知を聞くには、
kFIRInstanceIDTokenRefreshNotification
という名前の通知のオブザーバー。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
このオブザーバーは、トークンを作成する前に作成する必要があります。次に例を示します。
[FIRApp configure]
を呼び出す前。最新のトークンは、次のコマンドで取得できます。
[[FIRInstanceID instanceID] token]
を呼び出しています。
Cloud Messaging のトークンの生成を監視するには、 特定の委任を利用できます。