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);