mixiアプリ、ユーザー設定

mixiアプリのユーザー毎の設定の表示で、ちょっと勘違い(というより混乱)していたのでメモ。


アプリ開始時、保存してある永続化データを取得する際に、以下のようなコードにしていたのですが、

// OWNER の永続化データを取得
var request = opensocial.newDataRequest();
request.add(request.newFetchPersonRequest(
  opensocial.IdSpec.PersonId.OWNER
), "owner");
var param = {};
param[ opensocial.IdSpec.Field.USER_ID ] = opensocial.IdSpec.PersonId.OWNER;
var idSpec = opensocial.newIdSpec(param);
request.add(request.newFetchPersonAppDataRequest(idSpec, [ "data" ]), "owner_data");
request.send(function (response) {
  if (response.hadError()) return;

  var owner = response.get("owner").getData();
  if (owner.isOwner()) {
    // 設定ボタンを表示
  }
  ...
}

他の人のプロフィール画面上でも、「設定」ボタンが表示されていて失敗。
どうも、

if (owner.isOwner()) {
  // 設定ボタンを表示
}

「観ている人がオーナーか否か?」と思っていたのは勘違いでした。
これは、「取得したデータが、オーナーのものか否か?」だったんですね。


正解は、

if (owner.isViewer()) {
  // 設定ボタンを表示
}

「取得したデータが、閲覧者のものか否か?」で、真だったらボタンを表示すると。