酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

WindowsストアアプリでLive SDKを使ってフォルダ一覧を取得する

WindowsストアアプリからLive SDKを使って、SkyDrive上にフォルダの一覧を取得する方法をご紹介します。

Live Connectへサインインして既に取得済みのセッションをLiveConnectClientクラスのコンストラクタ引数に指定し、作成したLiveConnectClientオブジェクトを用いて、SkyDrive上に保存している自分自身のフォルダおよびアルバム一覧を取得します。

LiveConnectClientクラスのGetAsyncメソッドにて、SkyDrive上のフォルダ、アルバム一覧を取得します。Live SDKは、REST形式ですのでパスである「me/skydrive/files」と検索条件である「filter=folders,albums」を引数として指定します。

// 既にセッションを取得済みであることが前提
LiveConnectClient client = new LiveConnectClient(session);

// SkyDrive上のフォルダ、アルバム一覧を取得
var result1 = await client.GetAsync("me/skydrive/files?filter=folders,albums");
var folders = (List<object>)result1.Result["data"];
foreach (dynamic item in folders)
{
    string name = item.name;
    string id = item.id;

    // デバッグ出力
    Debug.WriteLine("{0}:{1}", name, id);
}

私のアカウントで試した結果、以下のような出力を得ることが出来ました(ユニークなID部分はxxxで差し替えています)。

Music:folder.xxxx.XXXX!124
Pictures:folder.xxxx.XXXX!122
Public:folder.xxxx.XXXX!126
SkyDriveカメラロール:folder.xxxx.XXXX!3659
Videos:folder.xxxx.XXXX!125
ドキュメント:folder.xxxx.XXXX!5719