名前の取得

昨晩気になった

viewer.getField(opensocial.Person.Field.NAME)

したときのオブジェクトを追ってみました。
こういう時ってどうしたら良いのかなぁ。とりあえず toSource() すると

({fields_:{formatted:"\u59B9\u5C3E \u771F\u7531\u5B50", unstructured:"\u59B9\u5C3E \u771F\u7531\u5B50", givenName:"\u59B9\u5C3E", familyName:"\u771F\u7531\u5B50"}})

となります。名前バレちゃうけどありがちな名前だから気にしないっ(笑)

for(x in viewer.getField(opensocial.Person.Field.NAME))
  console.log(x);
}

だと

fields_
getField

で,

for(x in viewer.getField(opensocial.Person.Field.NAME).fields_)
  console.log(x);
}

すると

formatted;
unstructured;
givenName;
familyName;

うん,ここまではおっけ!

でも色んなところに載っているサンプルでは,名前の取得は

viewer.getField(opensocial.Person.Field.NAME).getField(opensocial.Name.Field.UNSTRUCTURED);

と書いてあるんですよね。名前から考えると formatted を使いそうに思うんですが

for (x in opensocial.Name.Field) {
  console.log(x);
}
FAMILY_NAME
GIVEN_NAME
ADDITIONAL_NAME
HONORIFIC_PREFIX
HONORIFIC_SUFFIX
UNSTRUCTURED

うわ,FORMATTED ないや……(・・。) OpenSocial Foundation Moves Standards Work to W3C Social Web Activity | W3C Blog にも載ってないですね。

Rename unstructured to formatted. The unstructured Name field is renamed to formatted.

http://www.opensocial.org/Technical-Resources/opensocial-release-notes.html

0.8.1 からなのかな?でもこれ RESTful API の変更点ですよね。

うーん,お手上げ!普通のアプリだとニックネームだけで名前は使わないだろうから,ひとまず飛ばします。