UnityアプリにAndroidのプッシュ通知を組み込んでみる、開封通知も加えてみる


#プッシュ通知を受信してみる
[ニフティクラウド mobile backend](http://mb.cloud.nifty.com/)を使ってプッシュ通知を受信してみたただプッシュ通知を行うだけでなく、リッチプッシュ、ダイアログプッシュ、開封通知も含めて試してみる

ちなみに行う作業は以下

1. GCMでの設定
2. Unityでのニフティクラウド mobile backendのSDKインポート
3. プッシュ通知の設定
4. リッチプッシュの配信
5. ダイアログプッシュの配信
6. 開封通知の試行

# GCMでの設定

GCMの設定が一番時間がかかった。とりあえず[Google Developper Console](https://console.developers.google.com/)にログインする。

ヘッダーメニューからプロジェクトの作成を選択
![スクリーンショット 2016-02-26 17.14.37.png](https://qiita-image-store.s3.amazonaws.com/0/55227/8c133331-3166-82cd-7ddb-c952ec9dfb7a.png "スクリーンショット 2016-02-26 17.14.37.png")

その後、下記のポップアップが出てくるのでそこにプロジェクト名を入れて作成

![スクリーンショット 2016-02-26 17.17.32.png](https://qiita-image-store.s3.amazonaws.com/0/55227/61d0729c-e599-b57f-80ff-164fd43c318e.png "スクリーンショット 2016-02-26 17.17.32.png")

作成後に表示される画面の中から下記の「Google APIを利用する」を選択する
![スクリーンショット 2016-02-26 17.18.09.png](https://qiita-image-store.s3.amazonaws.com/0/55227/23032393-7738-16ce-0bec-0167e3cd6b70.png "スクリーンショット 2016-02-26 17.18.09.png")

するとAPI Managerに移動するのでそこでGCM(Google Cloud Message)を選択します。
![スクリーンショット 2016-02-26 17.18.25.png](https://qiita-image-store.s3.amazonaws.com/0/55227/a8c7d73c-c3a3-1b33-aa1b-835017f0df8e.png "スクリーンショット 2016-02-26 17.18.25.png")

選択後、移動した画面でEnableをクリック

![スクリーンショット 2016-02-26 17.18.44.png](https://qiita-image-store.s3.amazonaws.com/0/55227/795af84d-63ab-6d41-afff-72a6de484da3.png "スクリーンショット 2016-02-26 17.18.44.png")

Enalbeのクリック後左側のメニューから鍵マークがついた認証情報を選択、右の画面が変わるのでそこで認証情報タブを変更し、Create credentialsをクリックします

![スクリーンショット 2016-02-26 17.19.47.png](https://qiita-image-store.s3.amazonaws.com/0/55227/a96eca35-9db5-b0e2-213a-df4aa2a5f94b.png "スクリーンショット 2016-02-26 17.19.47.png")

すると下記のような画面がでるのでそこで、APIキーを選択

![スクリーンショット 2016-02-26 17.20.05.png](https://qiita-image-store.s3.amazonaws.com/0/55227/98957dfa-1ca9-8716-1ba4-13c888105cf8.png "スクリーンショット 2016-02-26 17.20.05.png")

下記の画面が出るのでそこで任意の名前をつけて作成をクリック、キーが作成されます。

![スクリーンショット 2016-02-26 17.20.28.png](https://qiita-image-store.s3.amazonaws.com/0/55227/795c37d6-7ad1-64f7-61db-7471240e37bf.png "スクリーンショット 2016-02-26 17.20.28.png")

作成されたキーはニフティクラウド mobile backendに設定する。
設定するのはアプリ設定＞プッシュ通知＞Androidプッシュ通知に作成されたAPIキーを設定する

![スクリーンショット 2016-02-26 17.21.45.png](https://qiita-image-store.s3.amazonaws.com/0/55227/7730b3c1-ffcc-7118-de45-1083a5272238.png "スクリーンショット 2016-02-26 17.21.45.png")

なおGoogle Developper Consoleのプロジェクトのホーム画面に戻るとプロジェクト名の表記がありそこに下記のように「SenderID」が含まれているこれも後ほど利用する


![スクリーンショット 2016-02-26 17.23.09.png](https://qiita-image-store.s3.amazonaws.com/0/55227/b4042a3e-1193-d080-e559-bfe6a73b0eea.png "スクリーンショット 2016-02-26 17.23.09.png")

# Unityでのニフティクラウド mobile backendのSDKインポート&プッシュ通知の設定

SDKのインポートは下記のサイトに詳細に乗っているのでそこをご参考ください
http://mb.cloud.nifty.com/doc/current/introduction/quickstart_unity.html
ここでは上記サイトの
「新規アプリ作成」「SDKダウンロード」「サンプルコードの実装」の３まで終わっていることが前提とする

まずはNCMBManagerというGameobjectmをつくりそこにAssets>NCMBにあるNCMBManager.csをアタッチする
![スクリーンショット 2016-02-26 18.38.55.png](https://qiita-image-store.s3.amazonaws.com/0/55227/5d325973-fdb6-f4a8-bad5-09d6678021b9.png "スクリーンショット 2016-02-26 18.38.55.png")

NCMBSettingsにのインスペクターにニフティクラウド mobile backendのApplicationキーとClientキーを設定,UsePushにチェック
さらにAndroidSenderIDに「GCMでの設定」の最後に書いたSenderIDを設定します。

![スクリーンショット 2016-02-26 18.41.34.png](https://qiita-image-store.s3.amazonaws.com/0/55227/8a90ec60-45ba-0452-bde4-1d0c0f86064b.png "スクリーンショット 2016-02-26 18.41.34.png")

そうしたらあとはビルドをします。
ちなみにビルド方法に関しての諸注意は下記にまとめているのでご参照あれ。
[Unity5.3のAndroidビルドが出来ない時の対処方法](http://qiita.com/fumishitan/items/245e56d209a24b453313)

その後プッシュ通知の配信をニフティクラウド mobile backendのダッシュボードから行えばプッシュ通知の受信が行えます。
[ダッシュボードからプッシュ通知を配信する](http://mb.cloud.nifty.com/doc/current/push/basic_usage_unity.html#ダッシュボードからプッシュ通知を配信する)

# リッチプッシュの配信

[リッチプッシュとは](http://mb.cloud.nifty.com/doc/current/push/richpush_unity.html)プッシュ通知を開いた瞬間にWebページが開かれるタイプのプッシュ通知のこと
ちなみにニフティクラウドmobile backendのリッチプッシュは超簡単プッシュ通知を配信画面にURL欄があるのでそこでURLを貼り付けるだけ
![スクリーンショット 2016-02-26 18.53.43.png](https://qiita-image-store.s3.amazonaws.com/0/55227/338ace00-ab5c-ef93-9ef3-303be1c0c73d.png "スクリーンショット 2016-02-26 18.53.43.png")
今回下記のページのURLを貼り付けて送ったところ
http://mb.cloud.nifty.com/about.htm
下記のように、アプリの画面で上記ページが開かれた

![Screenshot_20160226-163111.png](https://qiita-image-store.s3.amazonaws.com/0/55227/df52ace8-c574-b508-19a0-a1cfc05f3e09.png "Screenshot_20160226-163111.png")

# ダイアログプッシュの配信

[ダイアログプッシュとは](http://mb.cloud.nifty.com/doc/current/push/dialogpush_unity.html)プッシュ通知を受け取った時にダイアログが表示されるというもの。これも超簡単に送れる。プッシュ通知配信画面で「ダイアログ表示を有効にする」にチェックを付けるだけ

![スクリーンショット 2016-02-26 18.59.38.png](https://qiita-image-store.s3.amazonaws.com/0/55227/0bc7f371-a776-a2ec-f6f7-2ef18be7b5f5.png "スクリーンショット 2016-02-26 18.59.38.png")

するとプッシュ通知の受信時に下記のような画面が表示される
![Screenshot_20160226-163524-2.png](https://qiita-image-store.s3.amazonaws.com/0/55227/14058135-2b55-55bd-cbae-3bc0e940a6e0.png "Screenshot_20160226-163524-2.png")

# 開封通知の試行

[開封通知とは](http://mb.cloud.nifty.com/doc/current/push/openrates_unity.html)ユーザーがプッシュ通知を開いてくれたかどうかを見るための分析機能のようなもの
これも超簡単NCMBSettigsのインスペクターでUseAnalytcisにチェックをつけるだけ
![スクリーンショット 2016-02-26 19.06.06.png](https://qiita-image-store.s3.amazonaws.com/0/55227/fd274baa-afc0-aec5-23f2-a7eb662f118a.png "スクリーンショット 2016-02-26 19.06.06.png")

再ビルド後、プッシュ通知配信→開封してあげると下記のようにプッシュ通知の統計画面から開封されたかどうかの情報を見ることができる

![スクリーンショット 2016-02-26 19.09.03.png](https://qiita-image-store.s3.amazonaws.com/0/55227/b1a26c91-382b-8b1b-fb49-3271caa6de43.png "スクリーンショット 2016-02-26 19.09.03.png")

ということでUnityアプリのAndroidプッシュ通知に関してまとめてみた。