マイミク情報の表示
んー,2 回に分けようかな。まずは owner か viewer の情報取得。
まず mixi が対応している形式を調べてみます。「Open Frame in New Tab」しておくと Firebug から JavaScript 流し込めて便利ですね!
for (x in opensocial.Person.Field) { console.log(x); } for (x in mixi.PersonField) { console.log(x); }
と,いうことなので全部取得する request を作ってみます。
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="HelloWorld" author_email="hi_c_mayu@hotmail.co.jp"> <Require feature="opensocial-0.8" /> </ModulePrefs> <Content type="html" view="canvas"><![CDATA[ <script type="text/javascript"> var params = {} params[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = [ opensocial.Person.Field.ID, opensocial.Person.Field.NAME, opensocial.Person.Field.NICKNAME, opensocial.Person.Field.THUMBNAIL_URL, opensocial.Person.Field.PROFILE_URL, opensocial.Person.Field.CURRENT_LOCATION, opensocial.Person.Field.ADDRESSES, opensocial.Person.Field.EMAILS, opensocial.Person.Field.PHONE_NUMBERS, opensocial.Person.Field.ABOUT_ME, opensocial.Person.Field.STATUS, opensocial.Person.Field.PROFILE_SONG, opensocial.Person.Field.PROFILE_VIDEO, opensocial.Person.Field.GENDER, opensocial.Person.Field.SEXUAL_ORIENTATION, opensocial.Person.Field.RELATIONSHIP_STATUS, opensocial.Person.Field.AGE, opensocial.Person.Field.DATE_OF_BIRTH, opensocial.Person.Field.BODY_TYPE, opensocial.Person.Field.ETHNICITY, opensocial.Person.Field.SMOKER, opensocial.Person.Field.DRINKER, opensocial.Person.Field.CHILDREN, opensocial.Person.Field.PETS, opensocial.Person.Field.LIVING_ARRANGEMENT, opensocial.Person.Field.TIME_ZONE, opensocial.Person.Field.LANGUAGES_SPOKEN, opensocial.Person.Field.JOBS, opensocial.Person.Field.JOB_INTERESTS, opensocial.Person.Field.SCHOOLS, opensocial.Person.Field.INTERESTS, opensocial.Person.Field.URLS, opensocial.Person.Field.MUSIC, opensocial.Person.Field.MOVIES, opensocial.Person.Field.TV_SHOWS, opensocial.Person.Field.BOOKS, opensocial.Person.Field.ACTIVITIES, opensocial.Person.Field.SPORTS, opensocial.Person.Field.HEROES, opensocial.Person.Field.QUOTES, opensocial.Person.Field.CARS, opensocial.Person.Field.FOOD, opensocial.Person.Field.TURN_ONS, opensocial.Person.Field.TURN_OFFS, opensocial.Person.Field.TAGS, opensocial.Person.Field.ROMANCE, opensocial.Person.Field.SCARED_OF, opensocial.Person.Field.HAPPIEST_WHEN, opensocial.Person.Field.FASHION, opensocial.Person.Field.HUMOR, opensocial.Person.Field.LOOKING_FOR, opensocial.Person.Field.RELIGION, opensocial.Person.Field.POLITICAL_VIEWS, opensocial.Person.Field.HAS_APP, opensocial.Person.Field.NETWORK_PRESENCE, mixi.PersonField.BLOOD_TYPE ]; var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER, params), "viewer"); req.send(function(data) { if (data.hadError()) { var msg = data.getErrorMessage(); alert(msg); } else { var item = data.get("viewer"); if (item.hadError()) { var code = item.getErrorCode(); var msg = item.getErrorMessage(); alert(code + " : " + msg); } else { var viewer = item.getData(); document.getElementById("display_ID").innerHTML = viewer.getField(opensocial.Person.Field.ID); document.getElementById("display_NAME").innerHTML = viewer.getField(opensocial.Person.Field.NAME); document.getElementById("display_NICKNAME").innerHTML = viewer.getField(opensocial.Person.Field.NICKNAME); document.getElementById("display_THUMBNAIL_URL").innerHTML = viewer.getField(opensocial.Person.Field.THUMBNAIL_URL); document.getElementById("display_PROFILE_URL").innerHTML = viewer.getField(opensocial.Person.Field.PROFILE_URL); document.getElementById("display_CURRENT_LOCATION").innerHTML = viewer.getField(opensocial.Person.Field.CURRENT_LOCATION); document.getElementById("display_ADDRESSES").innerHTML = viewer.getField(opensocial.Person.Field.ADDRESSES); document.getElementById("display_EMAILS").innerHTML = viewer.getField(opensocial.Person.Field.EMAILS); document.getElementById("display_PHONE_NUMBERS").innerHTML = viewer.getField(opensocial.Person.Field.PHONE_NUMBERS); document.getElementById("display_ABOUT_ME").innerHTML = viewer.getField(opensocial.Person.Field.ABOUT_ME); document.getElementById("display_STATUS").innerHTML = viewer.getField(opensocial.Person.Field.STATUS); document.getElementById("display_PROFILE_SONG").innerHTML = viewer.getField(opensocial.Person.Field.PROFILE_SONG); document.getElementById("display_PROFILE_VIDEO").innerHTML = viewer.getField(opensocial.Person.Field.PROFILE_VIDEO); document.getElementById("display_GENDER").innerHTML = viewer.getField(opensocial.Person.Field.GENDER); document.getElementById("display_SEXUAL_ORIENTATION").innerHTML = viewer.getField(opensocial.Person.Field.SEXUAL_ORIENTATION); document.getElementById("display_RELATIONSHIP_STATUS").innerHTML = viewer.getField(opensocial.Person.Field.RELATIONSHIP_STATUS); document.getElementById("display_AGE").innerHTML = viewer.getField(opensocial.Person.Field.AGE); document.getElementById("display_DATE_OF_BIRTH").innerHTML = viewer.getField(opensocial.Person.Field.DATE_OF_BIRTH); document.getElementById("display_BODY_TYPE").innerHTML = viewer.getField(opensocial.Person.Field.BODY_TYPE); document.getElementById("display_ETHNICITY").innerHTML = viewer.getField(opensocial.Person.Field.ETHNICITY); document.getElementById("display_SMOKER").innerHTML = viewer.getField(opensocial.Person.Field.SMOKER); document.getElementById("display_DRINKER").innerHTML = viewer.getField(opensocial.Person.Field.DRINKER); document.getElementById("display_CHILDREN").innerHTML = viewer.getField(opensocial.Person.Field.CHILDREN); document.getElementById("display_PETS").innerHTML = viewer.getField(opensocial.Person.Field.PETS); document.getElementById("display_LIVING_ARRANGEMENT").innerHTML = viewer.getField(opensocial.Person.Field.LIVING_ARRANGEMENT); document.getElementById("display_TIME_ZONE").innerHTML = viewer.getField(opensocial.Person.Field.TIME_ZONE); document.getElementById("display_LANGUAGES_SPOKEN").innerHTML = viewer.getField(opensocial.Person.Field.LANGUAGES_SPOKEN); document.getElementById("display_JOBS").innerHTML = viewer.getField(opensocial.Person.Field.JOBS); document.getElementById("display_JOB_INTERESTS").innerHTML = viewer.getField(opensocial.Person.Field.JOB_INTERESTS); document.getElementById("display_SCHOOLS").innerHTML = viewer.getField(opensocial.Person.Field.SCHOOLS); document.getElementById("display_INTERESTS").innerHTML = viewer.getField(opensocial.Person.Field.INTERESTS); document.getElementById("display_URLS").innerHTML = viewer.getField(opensocial.Person.Field.URLS); document.getElementById("display_MUSIC").innerHTML = viewer.getField(opensocial.Person.Field.MUSIC); document.getElementById("display_MOVIES").innerHTML = viewer.getField(opensocial.Person.Field.MOVIES); document.getElementById("display_TV_SHOWS").innerHTML = viewer.getField(opensocial.Person.Field.TV_SHOWS); document.getElementById("display_BOOKS").innerHTML = viewer.getField(opensocial.Person.Field.BOOKS); document.getElementById("display_ACTIVITIES").innerHTML = viewer.getField(opensocial.Person.Field.ACTIVITIES); document.getElementById("display_SPORTS").innerHTML = viewer.getField(opensocial.Person.Field.SPORTS); document.getElementById("display_HEROES").innerHTML = viewer.getField(opensocial.Person.Field.HEROES); document.getElementById("display_QUOTES").innerHTML = viewer.getField(opensocial.Person.Field.QUOTES); document.getElementById("display_CARS").innerHTML = viewer.getField(opensocial.Person.Field.CARS); document.getElementById("display_FOOD").innerHTML = viewer.getField(opensocial.Person.Field.FOOD); document.getElementById("display_TURN_ONS").innerHTML = viewer.getField(opensocial.Person.Field.TURN_ONS); document.getElementById("display_TURN_OFFS").innerHTML = viewer.getField(opensocial.Person.Field.TURN_OFFS); document.getElementById("display_TAGS").innerHTML = viewer.getField(opensocial.Person.Field.TAGS); document.getElementById("display_ROMANCE").innerHTML = viewer.getField(opensocial.Person.Field.ROMANCE); document.getElementById("display_SCARED_OF").innerHTML = viewer.getField(opensocial.Person.Field.SCARED_OF); document.getElementById("display_HAPPIEST_WHEN").innerHTML = viewer.getField(opensocial.Person.Field.HAPPIEST_WHEN); document.getElementById("display_FASHION").innerHTML = viewer.getField(opensocial.Person.Field.FASHION); document.getElementById("display_HUMOR").innerHTML = viewer.getField(opensocial.Person.Field.HUMOR); document.getElementById("display_LOOKING_FOR").innerHTML = viewer.getField(opensocial.Person.Field.LOOKING_FOR); document.getElementById("display_RELIGION").innerHTML = viewer.getField(opensocial.Person.Field.RELIGION); document.getElementById("display_POLITICAL_VIEWS").innerHTML = viewer.getField(opensocial.Person.Field.POLITICAL_VIEWS); document.getElementById("display_HAS_APP").innerHTML = viewer.getField(opensocial.Person.Field.HAS_APP); document.getElementById("display_NETWORK_PRESENCE").innerHTML = viewer.getField(opensocial.Person.Field.NETWORK_PRESENCE); document.getElementById("display_BLOOD_TYPE").innerHTML = viewer.getField(mixi.PersonField.BLOOD_TYPE); } } }); </script> <div id="container"> <div>opensocial.Person.Field.ID = <span id="display_ID"></span></div> <div>opensocial.Person.Field.NAME = <span id="display_NAME"></span></div> <div>opensocial.Person.Field.NICKNAME = <span id="display_NICKNAME"></span></div> <div>opensocial.Person.Field.THUMBNAIL_URL = <span id="display_THUMBNAIL_URL"></span></div> <div>opensocial.Person.Field.PROFILE_URL = <span id="display_PROFILE_URL"></span></div> <div>opensocial.Person.Field.CURRENT_LOCATION = <span id="display_CURRENT_LOCATION"></span></div> <div>opensocial.Person.Field.ADDRESSES = <span id="display_ADDRESSES"></span></div> <div>opensocial.Person.Field.EMAILS = <span id="display_EMAILS"></span></div> <div>opensocial.Person.Field.PHONE_NUMBERS = <span id="display_PHONE_NUMBERS"></span></div> <div>opensocial.Person.Field.ABOUT_ME = <span id="display_ABOUT_ME"></span></div> <div>opensocial.Person.Field.STATUS = <span id="display_STATUS"></span></div> <div>opensocial.Person.Field.PROFILE_SONG = <span id="display_PROFILE_SONG"></span></div> <div>opensocial.Person.Field.PROFILE_VIDEO = <span id="display_PROFILE_VIDEO"></span></div> <div>opensocial.Person.Field.GENDER = <span id="display_GENDER"></span></div> <div>opensocial.Person.Field.SEXUAL_ORIENTATION = <span id="display_SEXUAL_ORIENTATION"></span></div> <div>opensocial.Person.Field.RELATIONSHIP_STATUS = <span id="display_RELATIONSHIP_STATUS"></span></div> <div>opensocial.Person.Field.AGE = <span id="display_AGE"></span></div> <div>opensocial.Person.Field.DATE_OF_BIRTH = <span id="display_DATE_OF_BIRTH"></span></div> <div>opensocial.Person.Field.BODY_TYPE = <span id="display_BODY_TYPE"></span></div> <div>opensocial.Person.Field.ETHNICITY = <span id="display_ETHNICITY"></span></div> <div>opensocial.Person.Field.SMOKER = <span id="display_SMOKER"></span></div> <div>opensocial.Person.Field.DRINKER = <span id="display_DRINKER"></span></div> <div>opensocial.Person.Field.CHILDREN = <span id="display_CHILDREN"></span></div> <div>opensocial.Person.Field.PETS = <span id="display_PETS"></span></div> <div>opensocial.Person.Field.LIVING_ARRANGEMENT = <span id="display_LIVING_ARRANGEMENT"></span></div> <div>opensocial.Person.Field.TIME_ZONE = <span id="display_TIME_ZONE"></span></div> <div>opensocial.Person.Field.LANGUAGES_SPOKEN = <span id="display_LANGUAGES_SPOKEN"></span></div> <div>opensocial.Person.Field.JOBS = <span id="display_JOBS"></span></div> <div>opensocial.Person.Field.JOB_INTERESTS = <span id="display_JOB_INTERESTS"></span></div> <div>opensocial.Person.Field.SCHOOLS = <span id="display_SCHOOLS"></span></div> <div>opensocial.Person.Field.INTERESTS = <span id="display_INTERESTS"></span></div> <div>opensocial.Person.Field.URLS = <span id="display_URLS"></span></div> <div>opensocial.Person.Field.MUSIC = <span id="display_MUSIC"></span></div> <div>opensocial.Person.Field.MOVIES = <span id="display_MOVIES"></span></div> <div>opensocial.Person.Field.TV_SHOWS = <span id="display_TV_SHOWS"></span></div> <div>opensocial.Person.Field.BOOKS = <span id="display_BOOKS"></span></div> <div>opensocial.Person.Field.ACTIVITIES = <span id="display_ACTIVITIES"></span></div> <div>opensocial.Person.Field.SPORTS = <span id="display_SPORTS"></span></div> <div>opensocial.Person.Field.HEROES = <span id="display_HEROES"></span></div> <div>opensocial.Person.Field.QUOTES = <span id="display_QUOTES"></span></div> <div>opensocial.Person.Field.CARS = <span id="display_CARS"></span></div> <div>opensocial.Person.Field.FOOD = <span id="display_FOOD"></span></div> <div>opensocial.Person.Field.TURN_ONS = <span id="display_TURN_ONS"></span></div> <div>opensocial.Person.Field.TURN_OFFS = <span id="display_TURN_OFFS"></span></div> <div>opensocial.Person.Field.TAGS = <span id="display_TAGS"></span></div> <div>opensocial.Person.Field.ROMANCE = <span id="display_ROMANCE"></span></div> <div>opensocial.Person.Field.SCARED_OF = <span id="display_SCARED_OF"></span></div> <div>opensocial.Person.Field.HAPPIEST_WHEN = <span id="display_HAPPIEST_WHEN"></span></div> <div>opensocial.Person.Field.FASHION = <span id="display_FASHION"></span></div> <div>opensocial.Person.Field.HUMOR = <span id="display_HUMOR"></span></div> <div>opensocial.Person.Field.LOOKING_FOR = <span id="display_LOOKING_FOR"></span></div> <div>opensocial.Person.Field.RELIGION = <span id="display_RELIGION"></span></div> <div>opensocial.Person.Field.POLITICAL_VIEWS = <span id="display_POLITICAL_VIEWS"></span></div> <div>opensocial.Person.Field.HAS_APP = <span id="display_HAS_APP"></span></div> <div>opensocial.Person.Field.NETWORK_PRESENCE = <span id="display_NETWORK_PRESENCE"></span></div> <div>mixi.PersonField.BLOOD_TYPE = <span id="display_BLOOD_TYPE></span></div> </div> ]]></Content> <Content type="html" view="home"><![CDATA[ Home view. ]]></Content> <Content type="html" view="profile"><![CDATA[ Profile view. ]]></Content> <Content type="html" view="preview"><![CDATA[ Preview view. ]]></Content> <Content type="html"><![CDATA[ Other view. ]]></Content> </Module>
にゃははw 我ながら酷いコードですねーw
ほとんど取れないんですね。
今のところ,viewer で取れるのは
- opensocial.Person.Field.ID
- opensocial.Person.Field.NAME
- opensocial.Person.Field.NICKNAME
- opensocial.Person.Field.THUMBNAIL_URL
- opensocial.Person.Field.PROFILE_URL
- opensocial.Person.Field.GENDER
- opensocial.Person.Field.HAS_APP
- mixi.PersonField.BLOOD_TYPE
みたいです。
あれ,現住所って取れるんじゃなかったっけなぁ。私の公開範囲の問題?
2009/07/01 03:21:38 追記。
公開範囲をすべて「全体まで公開」にしたところ,
- opensocial.Person.Field.ADDRESSES
- opensocial.Person.Field.AGE
- opensocial.Person.Field.DATE_OF_BIRTH
も取れました。公開範囲が「全体に公開」のものだけ取得出来るんですねー。
http://developer.mixi.co.jp/appli/pc/lets_enjoy_making_mixiapp/get_mymixi_info
- ID
- ニックネーム
- プロフィール写真
- プロフィールURL
- 現住所(県のみ)
- 年齢
- 生年月日
- 性別
- 血液型
はそれぞれ
ID | opensocial.Person.Field.ID |
---|---|
ニックネーム | opensocial.Person.Field.NICKNAME |
プロフィール写真 | opensocial.Person.Field.THUMBNAIL_URL |
プロフィールURL | opensocial.Person.Field.PROFILE_URL |
現住所(県のみ) | opensocial.Person.Field.ADDRESSES |
年齢 | opensocial.Person.Field.AGE |
生年月日 | opensocial.Person.Field.DATE_OF_BIRTH |
性別 | opensocial.Person.Field.GENDER |
血液型 | mixi.PersonField.BLOOD_TYPE |
で,いいかな?
あれ。opensocial.Person.Field.NAME の中って何が入ってるんだろう。
ってうわもう 3 時半だ。一つ一つ調べながらだと思ったより時間かかりますね……。続きはまた明日(*´-ω-)
2009/07/02 20:57:09 追記。
すみません,script タグの中身をコメントアウトしてました。まさかはてな記法でもコメントアウトが動いちゃうとは……。やりづらいです(;_;)