ここでは、SDKからプッシュ通知を配信する方法について解説します。

プッシュ通知オブジェクトECHO.Members.PushNotificationObject

PushNotificationObjectは、プッシュ通知を配信・操作するためのオブジェクトです。

オブジェクトを生成する

新しいプッシュ通知をオブジェクトとして生成するには、コンストラクタの第一引数にメンバーインスタンスのIDを指定します。

var push_notification = new ECHO.Members.PushNotificationObject("メンバーインスタンスID");

既存プッシュ通知をオブジェクトとして生成するには、コンストラクタの第二引数にプッシュ通知IDを指定します。

var push_notification = new ECHO.Members.PushNotificationObject("メンバーインスタンスID", "プッシュ通知ID");

オブジェクトフィールド

プッシュ通知オブジェクトは、以下のフィールドを持ちます。

フィールド名説明可変
refid String プッシュ通知ID ×
title String プッシュ通知タイトル(件名)
text String プッシュ通知本文
distributed Date 配信予約日時
target Object 配信ターゲット(ターゲットの指定には、ターゲット指定アクセサをご利用ください)

フィールドからデータを取得する

フィールドからデータを取得する場合は、getメソッドを使用します。

var title = push_notification.get("title");

フィールドにデータをセットする

オブジェクトのフィールドにデータをセットするには、putメソッドを使用します。

push_notification.put("title", "test push_notification");

push_notification.put("text", "push_notification text"); 

配信ターゲットを指定する(ターゲット指定アクセサ)

プッシュ通知の配信先(ターゲット)を指定するには、以下のターゲット指定アクセサを使用します。

// 配信ターゲットをリセット
push_notification.resetTarget();

// 全てのメンバーを配信ターゲットに指定
push_notification.targetAllMembers();

// ルートグループを配信ターゲットに指定(グループに所属する全てのメンバーが配信対象になります)
push_notification.targetRootGroup();

// 特定のメンバーを配信ターゲットに追加
var member = new ECHO.Members.MemberObject(push_notification.instanceId, "メンバーID"); // ターゲットに追加するメンバーオブジェクトを生成
push_notification.targetSpecificMember(member);

// 特定のグループを配信ターゲットに追加
var group = new ECHO.Members.GroupObject(push_notification.instanceId, "グループID"); // ターゲットに追加するグループオブジェクトを生成
push_notification.targetSpecificGroup(group);

プッシュ通知を配信/下書き保存する

プッシュ通知を配信または下書き保存するには、pushメソッドを使用します。

var push_notification = new ECHO.Members.PushNotificationObject("メンバーインスタンスID");

push_notification.put("title", "test push_notification"); // プッシュ通知タイトル(件名)をセット
push_notification.put("text", "push_notification text"); // プッシュ通知本文をセット
....


// プッシュ通知をプッシュ
var promise = push_notification.push();

// コールバックを定義
promise.then(function(success) { // 成功時
    console.log("Complete: " + success);
}, function(error) { // 失敗時
    console.log("Error: " + error);
});

プッシュ通知を取得する

リモートサーバー上に存在するプッシュ通知を取得するには、fetchメソッドを使用します。

var push_notification = new ECHO.Members.PushNotificationObject("メンバーインスタンスID", "プッシュ通知ID");

// プッシュ通知を取得
var promise = push_notification.fetch();

// コールバックを定義
promise.then(function(success) { // 成功時
    console.log("Complete: " + success);
}, function(error) { // 失敗時
    console.log("Error: " + error);
});

プッシュ通知を削除する

リモートサーバー上に存在するプッシュ通知を削除するには、deleteメソッドを使用します。

var push_notification = new ECHO.Members.PushNotificationObject("メンバーインスタンスID", "プッシュ通知ID");

// プッシュ通知を削除

var promise = push_notification.delete();

// コールバックを定義
promise.then(function(success) { // 成功時
    console.log("Complete: " + success);
}, function(error) { // 失敗時
    console.log("Error: " + error);
});

現在のACLを取得する

オブジェクトに現在設定されているACLを取得するには、getACLメソッドを使用します。

var current_acl = push_notification.getACL();

ACLを変更する

オブジェクトに新しいACLを設定するには、setNewACLメソッドを使用します。

var new_acl = new ECHO.ACL(); // ACLオブジェクトを生成
new_acl.putEntryForAll(new ECHO.ACL.Entry(false, false, false, false)); // 例:非ログイン訪問者の操作権限を全て奪う

push_notification.setNewACL(new_acl); // 新しいACLをセット

push_notification.push(); // セットしたACLを反映させるには、最後に必ず保存を実行してください