このページではAndroid端末にPush通知を行うための準備について記載します。

AppPotはGoogle社のGCM (Google Cloud Messaging)というサービスを利用して、Android端末にPush通知を送信します。

Push通知のための準備の流れは次の通りです。

  1. FCM (Firebase Cloud Messaging) のコンソールでIDを発行
  2. google-services.jsonファイルのダウンロード
  3. AppPot管理コンソールから、該当アプリの設定画面でAPIキーをセット
  4. アプリに送信者ID(Sender ID)をセット

1. FCM (Firebase Cloud Messaging) のコンソールでIDを発行

現在、AndroidのPush通知の仕組みはGCMからFCMへの移行期にあります。
AppPotでは送信にGCMを利用していますが、Push通知のためのサーバーキーと送信者IDの取得ははFCMを利用して行います。
Firebaseにアクセスして、アカウント登録を行った後、下記の手順を実行して下さい。


「プロジェクトを追加」を選択


任意のプロジェクト名とその他の項目を設定して「プロジェクト作成」を選択


「次へ」を選択

新しいプロジェクトが作成されましたので、左のサイドメニューから「Project Overview」の右の歯車マークをクリックして、「プロジェクトの設定」を選択して下さい。


プロジェクトの設定の概要が表示されますので「クラウドメッセージング」タブを選択。


以下の2つの情報を使用します。

  • サーバーキー: AppPotの管理画面からアプリに設定します
  • 送信者ID: クライアントアプリのコード中に指定します

2. google-services.jsonファイルのダウンロード


先程のID発行と同様に、左のサイドメニューから「Project Overview」の右の歯車マークをクリックして、「プロジェクトの設定」を選択して下さい。
既にプロジェクトの設定を開いている場合は、「全般」タブを選択して下さい。

「AndroidアプリにFirebaseを追加」を選択して下さい。


Androidパッケージ名にAndroidアプリで設定するパッケージ名を指定して下さい。
「アプリを登録」を選択します。


設定ファイルのダウンロードができるようになりましたので、「google-services.jsonをダウンロード」を選択してファイルをダウンロードして下さい。
ダウンロードしたファイルはアプリのプロジェクトに追加して下さい。

3. AppPot管理コンソールから、該当アプリにAPIキーをセット


AppPotの管理画面にログインし、アプリ管理メニューを選択します。


アプリの追加、または既存のアプリの編集を選択します。
アプリIDなどの情報と共に、プッシュ通知で対象となるプラットフォーム(ここではAndroid)にチェックを入れて、APIキーにFCMで作成したサーバーキーの値をセットして保存して下さい。

4. アプリに送信者ID(Sender ID)をセット

JavaScript SDKを使った開発の場合

下記のPushSenderIdにFCMで取得した送信者IDを指定して下さい。

const push = PushNotification.init({
  android: {
    senderID: PushSenderId
  },
  ios: {
    alert: true,
    badge: true,
    sound: true,
    clearBadge: true
  }
});

push.on('registration', (data)=>{
  console.log('registration', data);
});

Android SDKを使った開発の場合

GoogleCloudMessagingクラスを使って、GCMへ端末登録を行う際にFCMで取得した送信者IDを指定して下さい。

String senderID = "FCMで取得した送信者ID";
final String deviceToken = GoogleCloudMessaging.getInstance(MainActivity.this).register(
        r.getString(senderId));
// AppPotへの端末登録
service.registeDevice(1, deviceToken, new APResponseHandler() {
    @Override
    public void onSuccess(APResponse result) {
        // 成功時処理
    }

    public void onFailure(APResponse result) {
        // エラー時処理
    }
});