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()) { // 設定ボタンを表示 }
「取得したデータが、閲覧者のものか否か?」で、真だったらボタンを表示すると。