ドキュメント

グループ情報を取得する

Aipoに登録されているユーザーは、部署やマイグループによってグループ分けすることができます。ソーシャルアプリでも、これらのグループ情報にアクセスすることができます。

グループ情報の取得処理は、OpenSocial で定められている Groups API を利用することになります。OpenSocial 1.0 で規定されている仕様については下記をご覧ください。

http://opensocial-resources.googlecode.com/svn/spec/1.0/Social-Gadget.xml#osapi.groups

グループ一覧の取得

Aipoのグループ一覧を取得する JavaScript API を利用するためには、まず以下のようにガジェットXMLを記述して osapi フィーチャーを有効にする必要があります。

<Module ...>
  <ModulePrefs>
    <Require feature="osapi" />
     ...
  </ModulePrefs>
...
</Module>

グループ一覧を取得するコードは以下のようになります。

osapi.groups.get({ userId: '@viewer' }).execute(function(response) {
    var groups = response.list;
    for (var i in groups) {
        // グループID
        // 例)5031301034848187_23
        var groupId = groups[i].id.groupId;

        // グループ名(部署名)
        // 例)営業部
        var title = groups[i].title;

        // グループ種別(部署、マイグループ)
        // 例)unit
        var type = groups[i].type

        // ...
    }
    // ...
});
  • グループ一覧は osapi.groups.get() メソッドを利用して取得します。
  • userId パラメータは @viewer のみ指定できます。
  • グループ一覧には部署と利用者のマイグループが含まれています。

グループ一覧の取得範囲は osapi.groups.get() メソッドの userId パラメータで指定します。

userId 説明
@viewer Aipoに登録されている部署全体と利用者のマイグループ

グループ一覧で取得できる項目は以下のとおりです。

項目名 説明 サンプル
id グループID { groupId: "1301033363062_23", type: "groupId" }
title グループ名(部署名、マイグループ名) "営業部"
type unit: 部署
mygroup: マイグループ
"unit"

グループ一覧のページング

Aipoに登録されているグループ数が多い場合、グループ一覧で全件取得するのは負荷の面であまり好ましくありません。OpenSocial ではデータ取得の範囲を絞り込むためのパラメータが用意されています。

グループ一覧をページング処理するコードは以下のようになります。

osapi.groups.get({ userId: '@viewer', startIndex: 10, count: 50 }).execute(function(response) {

    // 全件数
    // 例)100
    var total = response.totalResults;

    // 開始位置
    // 例)10
    var startIndex = response.startIndex;

    // 取得件数
    // 例)50
    var count = response.itemsPerPage;

    var groups = response.list;

    for (var i in groups) {
        // グループID
        // 例)5031301034848187_23
        var groupId = groups[i].id.groupId;

        // グループ名(部署名)
        // 例)営業部
        var title = groups[i].title;

        // グループ種別(部署、マイグループ)
        // 例)unit
        var type = groups[i].type
        
        // ...
    }
    // ...
});
  • startIndex パラメータには取得開始位置、count パラメータには取得件数を指定します。
  • count パラメータのデフォルト値は 20、最大値は 1000 となります。

ユーザー一覧のグループ絞り込み

グループ一覧で取得した groupId を指定してユーザーを絞り込むことにより、グループに所属しているユーザー一覧を取得することができます。

グループを指定してユーザー一覧を絞り込むコードは以下のようになります。

osapi.groups.get({ userId: '@viewer' }).execute(function(response) {
    var groups = response.list;
    // グループID
    // 例)5031301034848187_23
    var groupId = groups[0].id.groupId;
    osapi.people.get({ userId: '@viewer', groupId: groupId }).execute(function(response) {
        var users = response.list;
        for (var i in users) {
            // ユーザーID
            // 例)org001:sample1
            var userId = users[i].id;

            // 表示名(氏名)
            // 例)木村 一郎
            var displayName = users[i].displayName;

            // ...
        }
        // ...
    });
});
  • groupId パラメータには絞り込みたいグループの ID を指定します。

グループ一覧のフィルタ

グループ一覧から特定の条件で絞り込みたい場合は、フィルタ条件を利用します。

マイグループのみ取得するコードは以下のようになります。

osapi.groups.get({ userId: '@viewer', filterBy: 'type', filterOp: 'equals', filterValue: 'mygroup' }).execute(function(response) {
    // ...
});
  • filterBy パラメータにフィルタ対象の項目、filterOp パラメータにフィルタの条件、filterValue パラメータにフィルタする値を指定します。

フィルタに指定することのできるパラメータは以下のようになります。

filterBy filterOp filterValue 説明
title equals
contains
startsWith
任意の文字列 グループ名を指定した文字列で絞り込みます。
type equals unit
mygroup
unit の場合は部署のみ、mygroup の場合はマイグループのみ取得します

filterOp パラメータに指定できる条件とその役割は以下のようになります。省略した場合は、equals が指定されます。

filterOp 説明
equals (省略時) filterBy の項目は filterValue と一致する
contains filterBy の項目が filterValue を含む
startsWith filterBy の項目が filterValue で始まる
present filterBy の項目が値を持つ

グループ一覧のソート

グループ一覧を並び替えたい場合は、ソート条件を利用します。

グループ一覧を降順で並び替えるコードは以下のようになります。

osapi.groups.get({ userId: '@viewer', sortBy: 'title', sortOrder: 'descending' }).execute(function(response) {
    // ...
});
  • sortBy パラメータにソート対象の項目、sortOrder パラメータにソートの方向(昇順、降順)を指定します。

ソートに指定することのできるパラメータは以下のようになります。

sortBy sortOrder 説明
title ascending
descending
グループ名(部署名、マイグループ名)でソートします。

sortOrder パラメータに指定できる条件とその役割は以下のようになります。省略した場合は、ascending が指定されます。

sortOrder 説明
ascending (省略時) 昇順でソートする
descending 降順でソートする