宙比己(92)191この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにすでにアナウンスがされているように、mBaaSであるParseは、そのサービスを来年2017年1月下旬に終了します。Parseを使って動いていたアプリは、そのサービスの受け皿を別で用意する必要があります。SNSに、Push用の端末情報データの移行を行ってみたいと思います。Push配信を実現するところまでやってみます。SNSへの移行等を参考に、最新の動向などを踏まえて、書かせていただいております。※Parseの管理画面は、新しいUIを使用していません。環境によっては画面構成が異なる場合があるかと思います。ParseにログインParseのダッシュボードに入り、移行したい情報が入っているアプリケーションのCoreを開きましょう。Push配信用の端末情報を取得したいので、Installationをクリックします。画面に端末情報一覧が表示されるのが確認できると思います。エクスポート画面右上に、下矢印が書かれたボックスのアイコンがあります。これをクリックします。すると、登録しているメールアドレスに、JSONファイル(圧縮されたもの)へのリンクが貼られたメッセージが届きます。コレをダウンロードしましょう。※ちなみに、1-iで別項目をクリックしていた場合、その項目のデータがダウンロードされます。ダウンロードしたファイルを解凍すると、_Installation.JSONなどの名前のJSONファイルが生成されます。キーとして存在しているのが確認できます。P12ファイルをダウンロード次に、Push配信用のP12ファイル(Production用)をゲットしましょう。通常は、既にParseで使われているものをダウンロードすればOKです。Pushを開くと、Push配信に関する証明書の設定画面が表示されます。Dateを確認しましょう。ここが過去の日付の場合、すでに証明書は期限切れで無効です。方法を使い、新規に作成し、改めてP12ファイルを書き出しましょう。中に現在使用している証明書から生成されたP12ファイルがあるかと思います。クリックすると、P12ファイルをゲットできます。ローカルディスクなどの中に、該当のP12ファイルがないか探してみてください。方法で、P12ファイルを書き出すことが出来ます。証明書やP12ファイルがないか、期限切れになっている場合、新規に作成する必要があります。Production)証明書ファイルを生成しましょう。証明書をP12として書き出しここまでの工程を経て、証明書はあるけどP12ファイルはない、という方は以下を実施しましょう。標準アプリキーチェーンアクセスを起動し、左ペインのキーチェーンからログインを、分類から証明書を選択します。続いて、証明書一覧の中から、必要なものを探します。Servicesと書かれた項目を探すと、すぐ見つかるでしょう。証明書が見つかったら、選択し、右クリックします。該当項目を書き出すメニュー項目が表示されますので、クリックします。続いて表示されるウインドウにおいて、名前でP12ファイルとして書き出したい名前を指定します。場所で書き出し先フォルダを選択します。選択されていることを確認し、保存をクリックします。続いて、P12ファイルに設定するパスワードを聞かれます。今回、パスワードを指定せずにそのままOKをクリックしています。パスワードを入力し、許可を選択し、書き出しを行います。リソース作成ここでは、すでにAWSアカウントをお持ちの前提で進めていきます。SNSを使っていきます。利用して実現している、とイメージ頂ければ良いと思います。他にもいろんなサービスを提供していますが、その実態は、AWSの別のサービスが担っていたりします。参考に、進めてください。プロジェクトをお持ちの方は、プロジェクト一覧画面が表示されます。projectをクリックましょう。続いて、任意の名前でプロジェクト作成を開始します。すると、プロジェクトで使える様々なサービスを管理する画面が表示されます。Logicなど、Parseを連想させる機能が揃っていますね。Notificationsをクリックします。Pushをクリックし、iOSをクリックします。certificateをクリックします。表示されたら、内容を確認し、必要に応じてチェックマークを入れます。どのトピックに向けてプッシュを配信するかを決定します。トピックは、ここでは、Push送信先のデバイストークン情報などを一括して持つもの、といった感じで捉えて頂ければOKだと思います。changesをクリックします。書かれた、リンク文字列をメモアプリなどにコピーしておきます。書かれた、APNS/を除くリンク文字列をコピーしておきます。これらの情報は後で使うので、コピーしておきましょう。クレデンシャルの取得AWSマネジメントコンソールの右上に書かれている、ユーザアカウント名(xxx@xxx-xxx...などと書かれている部分)をクリックし、プルダウンメニューから認証情報をクリックします。続いて左ペインからユーザーをクリックします。該当するユーザー名をクリックすると、IAMの情報が表示されます。認証情報タブをクリックし、アクセスキーの追加をクリックします。表示された場合は、アクセスキーの数がMAXになっていますので、必要ないものがあれば消す、など行ってください。アクセスキーの作成ウインドウが表示されます。このウインドウに書かれている通り、今回作成したアクセスキーに関して、認証情報をダウンロードできる最後の機会です。ユーザーのセキュリティ認証情報を表示をクリックすれば、アクセスキーIDとシークレットアクセスキーを直接画面上に表示できます。これを適切な方法・場所において、コピー・保存しておいてもOKです。認証情報は、後ほど使います。移行には専用のコマンドラインツール(Java)を使います。Push移行ツールのダウンロード以下からダウンロードします。Push移行ツールまた、このjarファイルを実行するため、Java実行環境がインストールされていなければ、以下からインストールしましょう。ダウンロードし、インストールします。dmg形式を選択するのが簡単で良いでしょう。移行ツールを実行するためのコマンドを書きます。少々長いので、シェルスクリプトとして保存しておくと、使い回しができて便利でしょう。内容は以下の通りです。今回は、import.shの名前で、JSONファイルと同じフォルダに保存します。JSONファイルの加工インポートするために、以下コマンドを、ターミナルから実行してみます。import.shすると、コマンドが実行されます。そのままでは、インポート実行時に以下の様なエラーが出ます。com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51)(以下略)移行ツールが対応していない、キーの名前とその値を削除する必要があります。ない項目を追加する必要があります。上記エラーを見ると、以下のキーに対応していることが分かります。"badge""deviceToken""endpointArn""updatedAt""channels""deviceType""subscriptionArns""objectId""createdAt"コレ以外のキーが入っているとエラーになるようです。キーがありませんでした。このキーと対応する値がないとエラーが出ます。データの全項目にこのキーと適当な値を追加しましょう。["",""],JSONから一部抜粋するとこのような形になります。最終的には、以下のようなJSONファイルを作成しました。再度コマンドを実行します。import.shすると、ログ出力をしながらデータ移行が実施されます。データ件数に応じて、ログの長さは異なります。console正しくデータが移行できたか確認しましょう。Applicationsの中にあるリンク文字列(APNS/から始まるもの)をクリックします。デバイストークンを含む、端末情報が移行できていることが確認できると思います。ここでは、特定の端末に向けて、送ってみます。