メンバーを操作する(メンバープラグイン)
ここでは、サイトアカウントに存在するメンバーインスタンスを、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");
Date(日時)型のフィールドからデータを取得する
Date型のフィールドからデータを取得する場合は、getDateメソッドを使用します。
var created = member.getDate("created");
フィールドにデータをセットする
オブジェクトのフィールドにデータをセットするには、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();
サーバーへメンバーを保存する
サーバーへメンバーを保存するには、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を反映させるには、最後に必ず保存を実行してください