ニフティクラウドmobile backendとは?
mBaaS?
MBaaS で巨人の肩に乗る #awscasual // Speaker Deckで紹介されているように、クラウドの新しいサービス群である「BaaS」がアメリカでは旺盛です。
ニフティでも各種クラウドサービスを提供していますが、2013/9末からスマートフォンアプリの特化型クラウド「ニフティクラウド mobile backend」mBaaS(mobile Backend as a Service)(※以下、mBaaSと呼びます)を提供しています。
mBaaS(mobile Backend as a Service)とは、スマートフォンアプリの開発で必要なサーバーとサーバープログラミングをお手軽に肩代わりしてくれるクラウドサービスです。データストア、ファイルストア、会員管理、SNS連携などを用意しているのですが、わりとサーバーサイドの実装が面倒な「プッシュ通知」も提供しています。
今回は、プッシュ通知を例にとって、mBaaSでプッシュ通知を実装するための手順を紹介し、mBaaSの「お手軽感」を感じ取っていただければと思います。
どうお手軽なの?
例えばAndroidでプッシュ通知を実装するには、GCM(Google Cloud Messaging)に対して自前のサーバーからプッシュ通知をリクエストするサーバープログラムの用意が必要です。mBaaSを使えば、GCMのAPIキーを設定するだけでサーバープログラムの部分は肩代わりしてくれますし、プッシュ通知を送るためのコントロールパネルも提供されるので、わざわざプッシュ通知を送るためだけにサーバーまわりの面倒な用意や作業の必要がありません。
- mBaaS初期設定
- mBaaSで提供されているSDKをセットアップ
- プッシュ通知に対応したアプリケーションの改変
- アプリケーションのアップデート
- mBaaSからプッシュ通知配信
といった具合の手順を踏んでプッシュ通知の配信が実装できます。下記チュートリアルで手順を追って説明します。
プッシュ通知(for Android)チュートリアル
概要
Push通知は作成したアプリケーションが非アクティブの場合でも新しいメッセージやイベントを通知します。Android端末上でPush通知を受信した時、アプリケーションアイコンと、メッセージをステータスバーに表示します。アプリケーションユーザがPush通知をタップした場合、それらはアプリケーションに送られます。Push通知は全てのユーザにブロードキャスト送信することも、マーケティングキャンペーンのためにユーザグループの一組や特定の個人に送信することが可能です。NCMBライブラリはニフティクラウドmobile backendとGCM(Google Cloud Messaging)とのインターネット接続によって、バックグラウンドサービスとして動作するPush通知を提供しています。この方法ではGCMを使用するためのアプリケーションキーとクライアントキーとセンダーIDが必要です。
初期設定
このチュートリアルではNCMB Android SDKを利用します。このため最新のSDKを入手しインポートする必要があります。SDK導入手順がmBaaSクイックスタートに記載されています。Push通知を実現するためには、gcm.jarのインポートと、mobile backendでの設定が必要になります。gcm.jarについてはAndroid SDK Managerからダウンロードしてください。Push通知を実現するために必要な、mobile backendの設定を以下に示します。
左メニューからアプリ設定をクリックし、表示された画面からプッシュ通知欄のプッシュ通知の許可を「許可する」に設定し、保存するボタンを押下します。またAndroidでのPush通知を有効にするため、APIキー欄にはGCMのAPIキーを設定します。GCMのAPIキーはGoogleのAPI Consoleサイトで確認できます。
GCM登録
Push通知を使用するためには、mobile backendにあなたのアプリケーションを登録しなけばなりません。以下のXMLを、AndroidManifest.xmlファイルのタグの直前に追加して下さい。
<service android:name="com.nifty.cloud.mb.NCMBGCMIntentService" />
<receiver
android:name="com.nifty.cloud.mb.NCMBGCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.sample.pushsample" />
</intent-filter>
</receiver>
パーミッション設定
次に、あなたのアプリケーションにPush通知を表示するためのパーミッションを付与しなければなりません。以下のXMLを、AndroidManifest.xmlファイルのタグの直前に追加してください。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Push通知時に端末を振動させたい場合はandroid.permission.VIBRATEを設定 -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.sample.pushsample.permission.C2D_MESSAGE" />
<permission android:name="com.sample.pushsample.permission.C2D_MESSAGE"android:protectionLevel="signature" />
mobile backendのAPIキー追加
あなたのアプリと、mobile backendが連携するために、APIキーのやりとりが必要になります。あなたのアプリケーションクラスのonCreateメソッドに次の処理を追加して下さい。
NCMB.initialize(this, "YOUR_APP_ID", "YOUR_CLIENT_KEY");
「YOUR_APP_ID」と「YOUR_CLIENT_KEY」についてはmobile backendでアプリを作成した際に表示される、アプリケーションキーとクライアントキーを設定するようにして下さい。
Push通知を有効にする
最後に、あなたのアプリケーションで通知する準備ができたことをmobile backendに知らせる必要があります。Push通知を始める最も単純な方法は、デフォルトとして全Push通知を使用するためのActivityを明記することです。あなたのアプリケーションクラスのonCreateメソッドに次の処理を追加して下さい。
final NCMBInstallation installation = NCMBInstallation.getCurrentInstallation();
installation.getRegistrationIdInBackground("SENDER_ID", new RegistrationCallback(){
@Override
public void done(NCMBException e) {
if (e != null) {
// 失敗
} else {
// 成功
// 端末登録の実行
try {
installation.save();
} catch(NCMBException e2) {
e2.printStackTrace();
}
}
}
});
NCMBPush.setDefaultPushCallback(this, MainActivity.class);
「SENDER_ID」についてはGCM(Google Cloud Messaging)のProject IDを設定するようにして下さい。GCMのProject IDについてはGoogleのAPI Consoleサイトで確認できます。
アプリケーションのアップデート
これらの手順でmBaaSのプッシュ通知に対応したコードをビルドして、ユーザに配布されているアプリケーションをアップデートしてもらいましょう。アップデート後にアプリケーションが起動されると、先ほど改変したonCreateメソッドが呼ばれた際に、ユーザの端末がmBaaSに登録され、mBaaSからプッシュ通知を配信する準備が整います。
ダッシュボードからプッシュ通知を送信する
mBaaSのダッシュボード>プッシュ通知>新しいプッシュ通知から作成、送信できます。
送信したいプッシュ通知の文言を設定、作成すると、送信されます。
いかがでしたか?うまく端末にプッシュ配信できたでしょうか。
さらに、配信端末の絞込や配信日次指定、再送信設定など、細かな設定を知りたい場合はダッシュボードの使い方:プッシュ通知を参照して下さい。