使ってみよう! Windows Live SDK/API

第44回 Windows 8でWindows Liveが加速! Live Connectで連携アプリの作成!

この記事を読むのに必要な時間:およそ 5 分

ユーザー情報の表示

それでは,基本的なユーザー情報を取得してみましょう。REST APIを利用すると,多様なユーザーデータの取得や操作が可能です。

https://apis.live.net/v5.0/meにアクセスすると,Userオブジェクトを取得できます。レスポンスはJSON形式で次のような値です。

{
    "first_name": "凶真", 
    "gender": "male", 
    "id": "xxxxxxxxxx", 
    "last_name": "鳳凰院", 
    "locale": "ja_JP", 
    "name": "鳳凰院 凶真", 
}

Userオブジェクトの内容(一部)を示します。以下の情報を得るために指定する許可Scopeはありません。何らかの許可を得ると参照可能です。ユーザーが設定していない情報は,null値となります。

プロパティ説明
idstringWindows Live IDで使用されている固有ID
namestringユーザー名(下記の名字と名前を併せたもの)
first_namestring/null名前
last_namestring/null名字
genderstring/null性別
male,female
localestringユーザーの国・地域コード
ja-jpなど

idは,Windows LiveではCIDと呼ばれているユーザーごとに一意な値です。ユーザーページのURLなどにも使用されています。REST APIで使用するURLは,https://apis.live.net/v5.0/me の代わりに固有IDを使って https://apis.live.net/v5.0/id と指定することも可能です。

Live Messengerなどで使用しているユーザーの表示アイコンは,次のURLで参照できます。

  • https://apis.live.net/v5.0/me/picture?access_token=ACCESTOKEN

  または,

  • https://apis.live.net/v5.0/USER_ID/picture?access_token=ACCES_TOKEN

USER_IDは,Userオブジェクトのidプロパティ値です。ACESS_TOKENには,認可プロセス時に得られるアクセストークンの値を設定します。JavaScript APIではsessionオブジェクトから参照できます。

ここまでの内容を取得するJavaScript APIを利用したコードは次のようになります。

<!DOCTYPE html>

<html lang="ja">
    <head>
        <meta charset="utf-8" />
        
        <title>User Info</title>
        <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.6.2.min.js"></script>        <script src="https://js.live.net/v5.0/ja/wl.js"></script>
        <script>
            $(function(){

                function onLogin() {
                    $("#pic").html("");
                    $("#info").html("");

                    var session = WL.getSession();
                    if (!session) {
                        return;
                    }

                    WL.api({path: "me"}, function (r) {                        
                        if (r.error) {
                            alert(r.error.message);
                            return;
                        }

                        $("#pic").html('<img src="https://apis.live.net/v5.0/me/picture?access_token=' + session.access_token + '">');
                        $("#info").html("<pre>" + JSON.stringify(r, null, "    ") + "</pre>");
                    });

                }

                WL.Event.subscribe("auth.login", onLogin);                
                WL.init({client_id: "YourClientID"});
                WL.ui({
                    name: "signin",
                    element: "signinButton",
                    brand: "windowslive",
                    scope: ["wl.signin"]
                });
            });
        </script>
    </head>
    <body>
        <div id="signinButton"></div>
        <div id="pic"></div>
        <div id="info"></div>
    </body>
</html>

実行結果は図3のようになります。

図3 ユーザー情報の表示

図3 ユーザー情報の表示

特定のScopeを指定し,ユーザーに許可を得ると,Userオブジェクトの別の値がさらに参照できるようになります。

著者プロフィール

松江祐輔(まつえゆうすけ)

日本システムウエア株式会社 勤務。現在,ハードウェア設計・検証業務を担当。大学生・大学院生時代はベンチャー企業 有限会社ミレニアムシステムズにプログラマーとして従事。趣味はプログラミング。好きな言語はVisual Basic。Microsoft MVP for Windows Live Platform(Jul 2010 - Jun 2011),Windows Live(Jul 2011 - Jun 2013)。

URL:http://katamari.jp