mixiアプリつくってみた
ついにmixiアプリの個人開発者登録が開始しました。
http://developer.mixi.co.jp/appli
名付けて「ミクミク占い」。相性の良いマイミクに★マークをつけて表示するアプリ。
見ての通りクソアプリですが、とりあえずmixiアプリ登録自体はスゴく簡単だということが分かった。基本はWeb上のどっかにGadgetXMLというXMLを置いておき、それをmixiアプリ側から呼び出すだけ。今回はマイミク情報を取得するためにfriends_dataというデータをOpenSocialのAPI経由でjavascriptで取得して表示しただけ。
OpenSocial、俺には関係ないや〜と思って激しくスルーしてきましたが、実環境で実際に作ってみると、ちょっとおもろいかも。
mixiアプリ、流行りそうですね。よういちろうさんのOSDE?も今週末あたり使ってみよう。
ソース
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="use Social Data"> <Require feature="opensocial-0.8"/> </ModulePrefs> <Content type="html"> <![CDATA[ <script type="text/javascript"> function request() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest("VIEWER"), "viewer_data"); req.send(response); get_viewer_friends(); } function response(dataResponse) { var viewer = dataResponse.get("viewer_data").getData(); var nickname = document.getElementById('nickname'); var text = document.createTextNode(viewer.getDisplayName()); nickname.appendChild(text); } function get_viewer_friends() { var request = opensocial.newDataRequest(); var param = {}; param[opensocial.IdSpec.Field.USER_ID] = opensocial.IdSpec.PersonId.VIEWER; param[opensocial.IdSpec.Field.GROUP_ID] = "FRIENDS"; var viewer_friends = opensocial.newIdSpec(param); request.add(request.newFetchPeopleRequest(viewer_friends), "friends_data"); request.send(function (response) { var item = response.get("friends_data"); if (item.hadError()) { // エラー処理。item.getError() で詳細情報を取得 return; } var list = document.getElementById('list'); var people = item.getData(); var array = people.asArray(); var n = Math.floor(Math.random() * 1000 % people.size()); alert(n); for(var i = 0; i < array.length; i++){ var person = array[i]; var nickname = person.getDisplayName(); var li = document.createElement("li"); if(i == n){ nickname += "★"; } var text = document.createTextNode(nickname); li.appendChild(text); list.appendChild(li); } }); } gadgets.util.registerOnLoadHandler(request); </script> <p>こんにちは<span id="nickname"></span>さん.</p> <p>今日、一番相性がいいのはこいつ(★がついている人)だ!!</p> <ul id="list"></ul> ]]> </Content> </Module>