2016年06月08日

今更ながらプッシュ通信

-----------------------------------------
6/9に修正あり
-----------------------------------------
どうも。
プットアップサムの中の人です。

ここ最近、新作アプリの情報を御伝えしておりますが、実際は本業の方が忙しくて、そちらの作業ばかりやっております。

この2〜3日も、とあるクライアントからの依頼で、WebView+プッシュ通信のアプリ開発の打診がありまして、その調査に掛かっておりました。

WebViewの方については、すぐにネットで情報が見つかりますし、私自身もいろいろと触ったことがあるので、割とどうすれば実装できるか?の感触は掴んでいるつもりですが、問題はプッシュ通信!!

以前から御話している通り、基本的にはAIR(とういかActionScript)でしかプログラムが出来ませんので、この案件もAIRで考えておりました。
ただし、AIR単体ではプッシュ通信できませんからANEが必要な上、プッシュサーバーも必要になります。

そこでいろいろと考えた末に用意したのが、こちら。

まずはAIR用のANE。
・MilkmanGames The Easy Push Notifications ANE.

そして、プッシュサーバー
oneSignal

PushANEの方は有料で、実は随分前に購入済だったんですが、正直複雑に感じて手をつけておりませんでした(笑)。
そして、プッシュサーバーは、このANEのドキュメントの中で紹介されていたもので、手順等を考えれば、これを使用するのが一番間違いないだろうとの判断で、これに決めました。
何しろ、無料ですからね。

そんな訳でとにかくテストアプリを作成!!

今回はAndroid版での打診だったので、Android版のみを作成しました。

今後のために、手順をメモ書き程度に記しておきます。

1)https://console.developers.google.com/iam-admin/projectsにアクセスし、プロジェクトを作成
 適当な名前でプロジェクト名を登録
2)次に使用するAPIを選択(ここではMobileAPIの中のGoogleClpudMessagingを選択)
3)「有効にする」ボタンをクリックして有効に。
4)認証情報の作成を推奨されるので、[認証情報に進む]をクリック
5)必要な認証情報の種類をGoogleClpudMessagingにし(プルダウンで選択)、さらにAPIを呼び出す場所を[Android]に設定(プルダウンで選択)して、[必要な認証情報」をクリック
6)APIキーの作成をするように言われるので、名前を付けて、[APIキーを作成する]をクリック
7)APIキーが作成されるので、[完了]をクリック
8)後ほど、プッシュサーバーに登録時に必要になるのでコピーしておく。

9)次に画面左上の横縞アイコン(GoogleAPIsのロゴの横)をクリックして、GoogleCloudPlatFromに移動。
10)左のメニューから「ダッシュボード」を選択すると、画面の何処かに先程のプロジェクトのプロジェクト名、プロジェクトID、プロジェクト番号(#で始まる数字の列)が表示されているはず。

このプロジェクトIDとプロジェクト番号は後で必要なので、コピーしておく。

※※※※※※※※※※※※※※※※※※※※※※※※
上記のAPIキー取得方法は間違っているようでした
※※※※※※※※※※※※※※※※※※※※※※※※
じゃあ、どうすれば良いのか?が正確には分かりませんでした。
とりあえずの方法として、上記まで手順を踏んだら、
https://developers.google.com/mobile/add?platform=android&cntapi=gcm
ここにアクセス。

A)App nameからプルダウンで、上記で設定したプロジェクト名を設定。
B)Android pakage nameの所に、製作中のアプリのパッケージ名(AnimateCCなんかではアプリケーションIDとして入力する「air.yourdomain.apriname」みたいな奴です)
C)入力できると、[choose and configure services →]というボタンが出るので、クリック。
D)Cloud Messaingを選択し、Enableにすると(Ennableになっていると)、その下に
E)Sever API Key と 
F)Sender ID が表示されます。
 
この2つが必要になりますので、コピペしておきます。

11)次にoneSignalにログインし、「Add new app」をクリック。
12)自分が登録したいアプリ名を入力して「Create」をクリック。
13)次にプラットフォームを選択し(ここではAndroid)、「Next」をクリック。
14)次に7)で作成しtAPIキーをGoogleServerAPIKeyに入力して[Save]をクリック。
 ※これが間違いで、E)のSever API Keyを入力します。

15)次にSDKを選択。ここではAdobeAIRを選択して[Next]をクリック。
16)すると、Your App ID:********-****-****-****-************と表示されるので、これもコピーしておく。
17)次に「CheckSubScribedUsers」ボタンを押すのだが、このとき、USB接続されたAdroid端末に、このAppIDで認証するコードが書かれたアプリが入っていないと認証手続きが進まない。

※私はここで随分悩みました・・・(涙)
なので、まず、アプリの方を進めます。

18)MilkmanGamesのドキュメント通りに、まずは初期化&認証用のコードを書き、16)で出たAppIDを第一引数に、さらに10)で出た、GoogleCloudPlatFormに登録したプロジェクトのプロジェクト番号(IDではありません!)を第二引き数に設定します。
※これは間違いではありません。F)で表示されているものも同じIDのはずです。

19)実行ファイルを書き出し、端末にインストールしたら、先程の「CheckSubScribedUsers」をクリック。
20)すると認証が通過したのか、UserIDというものが表示されます。
21)その後、「Send Test Notificaion」ボタンをクリックすると、端末にテスト通信が届く。
22)その通信をタップして確認すると、認証が完了する。

これでプッシュ通信が可能になった・・・はず。
プッシュサーバー側の認証の方法が後半部分、少々あやふやですので、実際に試す場合はこの通りではないかもしれません。
責任は持てませんので、十分に気を付けてください。


さて、これで何とかAndroidのプッシュ通信は出来るようになりました。
次はがんばってiOS用に挑戦してみようかな。

posted by カモノハシ at 10:09| Comment(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: