プッシュ通知を配信する(メンバープラグイン)
ここでは、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を反映させるには、最後に必ず保存を実行してください