mixiアプリでユーザ情報を取得する方法
mixiアプリの開発仕様はopensocialの規格に準じているので、opensocial-jqueryというラッパーライブラリを利用してアプリを作ってみたいと思います。
opensocial-jqueryについて詳しくはhttp://code.google.com/p/opensocial-jquery/からどうぞ
mixiアプリの直書きはmixiデベロッパーセンターのソース例を見ればわかるとおりxmlによくわからない呪文をガシガシ書いててありえない…と思ったわけですが、opensocial-jqueryもまだドキュメントが充実しているわけではないのでスイスイ書けるというわけではないようです。(少なくとも私はユーザ情報の取得すらうまくできませんでした。。)
ということで今回はopensocial-jqueryを使用してmixiユーザ情報を取得する方法を紹介します。(あってるかわからないけど
以下xmlファイルのソース
<script type="text/javascript" src="/static/opensocial-jquery.js"></script> <script type="text/javascript"> jQuery(function($) { var url = '/people/@owner/@self'; var data = {fields:'profileUrl,addresses,unstructured_address,age,date_of_birth,gender,has_app,bloodType'}; $.getData(url, data, function(data, status) { var person = data[0]; <!--サムネイル画像の表示--> if(person.thumbnailUrl){$('.person .thumbnail img').attr('src', person.thumbnailUrl).show();} <!--ユーザidの取得--> $('.person .id').text(person.id); <!--名前の取得--> $('.person .name').text(person.name.unstructured); <!--ニックネームの取得--> $('.person .nickname').text(person.nickname); <!--プロフィールURLの取得--> $('.person .profileurl').text(person.profileUrl); <!--現住所(県のみ)の取得--> $('.person .pref').text(person.addresses.unstructured_address); <!--年齢の取得--> $('.person .age').text(person.age); <!--生まれた年の取得(できてません)--> $('.person .birth').text(person.date_of_birth); <!--性別(MALE,FEMALE)--> $('.person .gender').text(person.gender.getKey()); <!--使用しているアプリの取得?(できてません)--> $('.person .hasapp').text(person.has_app); <!--血液型の取得--> $('.person .bloodtype').text(person.bloodType); $(window).adjustHeight(); }); }); </script>
名前とニックネーム、サムネイルはdataに何も書かない状態でも取得できるのですが、それ以外のプロフィール情報はdataにfieldsパラメータを指定しなければ取得できませんでした。指定しなくても取得できるのかな…?
現住所は県までしか取得できないようです。
それと現状でbirthとhas_appが取得できませんorz誰かわかる方いましたら教えてください。。
html部分
<div id="people"> <dl class="person"> <dt class="thumbnail"><img style="display:none;" /></dt> <dd class="id">[id]</dd> <dd class="name">[name]</dd> <dd class="nickname">[nickname]</dd> <dd class="profileurl">[profileurl]</dd> <dd class="pref">[pref]</dd> <dd class="age">[age]</dd> <dd class="birth">[birth]</dd> <dd class="gender">[gender]</dd> <dd class="hasapp">[hasapp]</dd> <dd class="bloodtype">[bloodtype]</dd> </dl> </div>
とすることでそれぞれのタグの中身にユーザ情報が置換されます。
一応これで取得できてるはず…!