メンバーを操作する(メンバープラグイン)

ここでは、サイトアカウントに存在するメンバーインスタンスを、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を反映させるには、最後に必ず保存を実行してください