6.2. クライアントからのPush送信方法 (Pure Java / Android編)

ここでは,Pure Java および Androidアプリケーションからのプッシュ送信方法を説明します.

6.2.1. Push送信方法

NbPush オブジェクトを作成し, sendPush メソッドを呼ぶことで,プッシュを送信できます。

以下にコード例を示します.

この例では,下記のようなプッシュを送ります.

  • TerminalInfo チャネルを購読中のインスタレーションを宛先とします.
  • 受信者を,営業グループ( g:eigyo )と,企画グループ( g:kikaku )に限定します.
  • メッセージとして, "Low battery." を送ります.

宛先を「インスタレーションを選択するためのクエリ」として作成するのがポイントです. (クエリの詳細については, オブジェクトのクエリ を参照して下さい)

NbPush push = new NbPush();

// 宛先を作成する
NbClause clause = new NbClause();
clause.equals("_channels", "TerminalInfo");

// 宛先をセットする
push.setClause(clause);

// 受信者一覧を作成する
Set<String> allowedReceivers = new HashSet<>();
allowedReceivers.add("g:eigyo");
allowedReceivers.add("g:kikaku");

// 受信者をセットする
push.setAllowedReceivers(allowedReceivers);

// メッセージをセットする
push.setMessage("Low battery.");

// Pushを送信する
push.sendPush(new NbPushCallback() {
    @Override
    public void onSuccess(NbJSONObject result) {
        // result には,宛先として選択されたインスタレーションの数が格納されている
        ...
    }

    @Override
    public void onFailure(int statusCode, NbErrorInfo errorInfo) {
        ...
    }
});

6.2.2. オプションパラメータ設定方法

GCM, APNs, SSEの各プッシュテクノロジ特有の,オプションパラメータは下記のように設定して下さい.

GCMの場合

NbGCMFields gcm = new NbGcmFields()
    .setTitle("title")
    .setUri("http://www.nebula.test.com/");

NbPush push = new NbPush();
push.setGCMFields(gcm);

APNsの場合

NbAPNsFields apns = new NbAPNsFields()
    .setBadge(5)
    .setSound("sound.aiff")
    .setContentAvailable(1)
    .setCategory("information");

NbPush push = new NbPush();
push.setAPNsFields(apns);

SSEの場合

NbSseFields sse = new NbSseFields()
    .setEventId("event01")
    .setEventType("message");

NbPush push = new NbPush();
push.setSseFields(sse);