メンバーを操作する(メンバープラグイン)
ここでは、サイトアカウントに存在するメンバーインスタンスを、SDKから操作する方法について解説します。
メンバーオブジェクトECHO.Members.MemberObject
MemberObjectは、個別メンバーを操作するためのオブジェクトです。
オブジェクトを生成する
新しいメンバーをオブジェクトとして生成するには、コンストラクタの第一引数にメンバーインスタンスのIDを指定します。
var member = new ECHO.Members.MemberObject("メンバーインスタンスID");
既存メンバーをオブジェクトとして生成するには、コンストラクタの第二引数にメンバーID(注:ログインIDではありません)を指定します。
var member = new ECHO.Members.MemberObject("メンバーインスタンスID", "メンバーID");
オブジェクトフィールド
メンバーオブジェクトは、以下のフィールドを持ちます。
フィールド名 | 型 | 説明 | 可変 |
---|---|---|---|
refid | String | メンバーID | × |
login_id | String | メンバーログインID | ◯ |
password | String | メンバーログインパスワード | ◯ |
contents | Object | メンバーコンテンツ | ◯ |
created | Date | 登録日時 | × |
groups | Array <ECHO.Members.GroupObject> |
所属グループ | ◯ |
フィールドからデータを取得する
フィールドからデータを取得する場合は、getメソッドを使用します。
var login_id = member.get("login_id");
フィールドにデータをセットする
オブジェクトのフィールドにデータをセットするには、putメソッドを使用します。
member.put("login_id", "john1442");
member.put("contents", {name:"John"});
ログイン・ログアウト
ACL(アクセスコントロール)が設定されているコンテンツへアクセスするには、予めアクセスが許可されているメンバーでログインしておく必要があります。
特定のメンバーでログインするには、ECHO.Members.loginメソッドを使用します。
ログインに成功すると、以後ログアウトもしくはタイムアウトするまで、ログイン状態が維持されます。
var promise = ECHO.Members.login("メンバーインスタンスID", "メンバーログインID", "メンバーログインパスワード");
// コールバックを定義
promise.then(function(success) {
console.log("ログインに成功しました");
}, function(error) {
console.log("ログインエラー: " + error);
});
ログアウトするには、ECHO.Members.logoutメソッドを使用します。
ECHO.Members.logout("メンバーインスタンスID");
メンバーを保存する
リモートサーバーへメンバーを保存するには、pushメソッドを使用します。
var member = new ECHO.Members.MemberObject("メンバーインスタンスID");
member.put("login_id", "john1234"); // メンバーログインIDをセット
member.put("password", "password"); // メンバーログインパスワードをセット
....
// メンバーを保存
var promise = member.push();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Error: " + error);
});
メンバーを取得する
リモートサーバー上に存在するメンバーを取得するには、fetchメソッドを使用します。
var member = new ECHO.Members.MemberObject("メンバーインスタンスID", "メンバーID");
// メンバーを取得
var promise = member.fetch();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Error: " + error);
});
メンバーを削除する
リモートサーバー上に存在するメンバーを削除するには、deleteメソッドを使用します。
var member = new ECHO.Members.MemberObject("メンバーインスタンスID", "メンバーID");
// メンバーを削除var promise = member.delete();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Error: " + error);
});
メンバーを検索する
メンバーを検索するには、ECHO.Members.findメソッドを使用します。
第二引数にリスト制御パラメータを与えることで、データの検索・抽出条件を指定することが可能です。
// メンバーを検索
var promise = ECHO.Members.find("メンバーインスタンスID", {q:"検索キーワード"});
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Complete: " + error);
});
現在のACLを取得する
オブジェクトに現在設定されているACLを取得するには、getACLメソッドを使用します。
var current_acl = member.getACL();
ACLを変更する
オブジェクトに新しいACLを設定するには、setNewACLメソッドを使用します。
var new_acl = new ECHO.ACL(); // ACLオブジェクトを生成
new_acl.putEntryForAll(new ECHO.ACL.Entry(false, false, false, false)); // 例:非ログイン訪問者の操作権限を全て奪う
member.setNewACL(new_acl); // 新しいACLをセット
member.push(); // セットしたACLを反映させるには、最後に必ず保存を実行してください