BtoBtoC(BtoBtoBでも可)向けのアプリの場合、そのアプリを提供している会社向けに管理画面を提供したいと考えることがあります。その管理画面では、利用企業が自分たちのデータについてだけメンテナンスできるようになります。
そのための管理画面を作成していきます。今回は各企業向けにプッシュ通知機能を提供する場合の方法について紹介します。
絞り込みできるようにフラグを設ける
プッシュ通知はデータストアのACLのような制御ではなく、フィルタリングできるフラグによって制御するのが良いでしょう。そして、各企業の管理画面からプッシュ通知を作成する際に、常にその条件を含めるようにします。
今回の例で行くと、企業名を使うのが良いでしょう。
iOSの場合
iOSの場合は setObjectを使って指定します。
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { //NCMBInstallationのインスタンスを作成 NCMBInstallation *installation = [NCMBInstallation currentInstallation]; //DeviceTokenを設定 [installation setDeviceTokenFromData:deviceToken]; //独自フィールドを設定 [installation setObject:@"companyName" forKey: companyName]; //端末情報をデータストアに保存 [installation saveInBackgroundWithBlock:^(NSError *error) { NSLog(@"installationIdInBlock:%@", installation.objectId); if(!error){ //端末情報の登録が成功した場合の処理 } else { //端末情報の登録が失敗した場合の処理 } }]; }
Androidの場合
Androidではputを使います。
//NCMBInstallationのインスタンスを作成 final NCMBInstallation installation = NCMBInstallation.getCurrentInstallation(); //GCMからRegistrationIdを取得 installation.getRegistrationIdInBackground("senderId", new DoneCallback() { @Override public void done(NCMBException e) { if (e == null) { //独自フィールドの設定 installation.put("companyName", companyName); //端末情報の登録 installation.saveInBackground(new DoneCallback() { @Override public void done(NCMBException saveErr) { if (saveErr != null) { //端末情報登録時のエラー処理 } } }); } else { //ID取得失敗 error = e; } TestCompletion = true; } });
JavaScript(Monaca)の場合
JavaScriptの場合、setを使います。
//JavaScript SDKのInstallationクラスを利用して端末情報を取得 ncmb.Installation.fetchById("object_id") .then(function(installation){ //独自フィールドの設定とデータストアへの保存 installation.set("companyName", companyName); return installation.update(); }) .then(function(installation){ // 更新後の処理 }) .catch(function(err){ // エラー処理 });
Unityの場合
Unityの場合はAddを使います。
NCMBInstallation installation = NCMBInstallation.getCurrentInstallation(); installation.Add ("companyName", companyName); installation.SaveAsync ((NCMBException e)=>{ if(e!=null){ //成功時の処理 } else { //エラー時の処理 } });
このようにデバイストークンに対して企業名を持たせておけば、検索条件として指定できるようになります。次回は実際にプッシュ通知を作成する処理を紹介します。