FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Parse Serverでデバイストークンを保存する

NCMBは2024年3月末をもって終了します

Parse ServerはオープンソースのmBaaS(mobile Backend as a Service)です。NCMBと仕組みが似ており、移行先としてお勧めしています。自分で立てるか、Parse Serverのクラウドサービスも利用できます。

Parse Serverでもプッシュ通知機能を提供しています。利用する際には、まずデバイストークンの保存が必要です。この記事ではサーバー側の設定と、実際のデバイストークンの保存について解説します。

Parse Serverの設定

Parse Serverを起動する際のJSONで、以下のように設定します。

基本の設定

push キーの下に設定をします。なお、以下はiOSはp12ファイルを利用する場合です。

{
  "appId": "appId",
    // : 省略
    "push": {
        "android": {
            "apiKey": "..."
        },
        "ios": {
            "pfx": "/file/path/to/XXX.p12",
            "passphrase": "", // p12/PFXのパスフレーズ(オプション)
            "bundleId": '',
            "production": false
        }
    }
}

p8ファイルを利用する場合には、以下のように設定します。

{
  "appId": "appId",
    // : 省略
    "push": {
      "ios": {
            "token": {
                "key": "/file/path/to/AuthKey_XXXXXXXXXX.p8",
                "keyId": "XXXXXXXXXX",
                "teamId": "YYYYYYYYYY"
            },
            "topic": "com.domain.appname",
            "production": false
        }
    }
}

デバイストークンの取得

Androidの場合

Androidは以下のコードでデバイストークンを取得・保存できます。

ParseInstallation.getCurrentInstallation().saveInBackground();

Android Developers Guide | Parse

iOSの場合

Swift SDKでの例です。

ParseInstallation.current?.save { (result: Result<ParseInstallation, ParseError>) in
        switch result {
        case .success(_):
                print("successfully saved installation on server")
        case .failure(let error):
                print("failed to save installation on server: \(error)")
        }
}

Unityの場合

Unity SDKの例です。

var installation = ParseInstallation.CurrentInstallation;
installation.Channels = new List<string> { "Giants" };
installation.SaveAsync();

Monacaの場合

たとえばMonacaアプリの場合であれば、 cordova-plugin-push が利用できるでしょう。

そして、取得したデバイストークンを以下のように保存します。

const installation = new Parse.Installation();
installation
    .set('deviceType', 'ios')
    .set('deviceToken', '1234567890')
    .set('channels', ['global'])
    .set('appName', 'Parse App');
await installation.save();

まとめ

Parse Serverでデバイストークンを保存する方法を紹介しました。Parse Serverは、NCMBと仕組みが似ているため、移行先としてお勧めしています。移行に伴う変更量が、他のサービスと比べて少なく済むはずです。

なお、MonacaではNCMBを使うことで無料でプッシュ通知が使えていましたが、cordova-plugin-pushの利用時には有料プランが必要になる点に注意してください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。