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

第52回SkyDrive API 概要(5)─⁠─Live SDK 5.1 Previewほか

はじめに

前回から少し間が空いてしまいましたが、前回の直後にWindows 8 Consumer Preview、Visual Studio 11 Betaなどが公開されています。新しいWindowsと開発環境はもう体験しましたか? SkyDriveのMetro style appなどLiveサービスと連携したアプリや機能も使えるようになっています。

先月にアナウンスのあったエクスプローラと統合したSkyDriveのクライアントアプリは、まだ公開されていません。楽しみにもう少し待っていましょう。

さて、これらのリリースに併せてLive SDKも新しく、Version 5.1のPreview版が公開されています。今回は、前回に引き続いてSkyDriveの操作と、新しいSDKの内容を簡単に紹介します。Live SDKやWindows 8などは、開発者向けダウンロードから手に入ります。

前回、予告していたアプリ開発は次回紹介します。

Live SDK 5.1 Preview

Live SDKのVersion 5.1の内容を簡単にみてみましょう。現在はまだPreview版で、REST APIの呼び出しはhttps://apis.live.net/v5.0にアクセスする代わりに、https://beta.apis.live.net/v5.0にアクセスします。また、一部の機能はまだ反映されていないようです。

REST API

REST APIで新しくサポートされた機能は次の通りです。

  • アプリのロゴの変更
  • ユーザーアカウントのメールアドレスの取得
  • SkyDriveの容量の取得
  • Audioオブジェクトの詳細な情報の取得
  • Photoオブジェクトの経緯度情報の取得
  • SkyDrive上のOffice OneNote ノートブックを開くリンクの取得
  • SkyDriveのドキュメントフォルダなど既定のフォルダーにFolder IDに代わってわかりやすいパスでのアクセス
  • SkyDriveのファイルのコメントやタグの作成および削除

以上のようにSkyDriveのアップデートが目立ちます。前回紹介したコメントとタグは、読み取りだけでなく作成・削除ができるようになります。この後にSkyDrive関連の新しい機能をピックアップして紹介します。

Messenger

この連載では紹介していませんが、Live Messengerのインスタントメッセージング機能が、XMPPというオープンなプロトコルで使えます。そのサポートするプロトコルの内容が更新されています。

Metro style app

Live SDKでは、Windows PhoneおよびWindows 8の新しいアプリ形式「Metro style app」用のAPIが用意されています。こちらも連載では紹介していませんが、Windows 8など最新の環境に関連してアップデートがなされています。

SkyDriveの容量の取得

それでは、REST APIのうち、SkyDrive関連の内容をみてみましょう。最初は、SkyDriveの使用している・空いているサイズを取得します。

SkyDriveの容量は次のURLにHTTP GETアクセスすると取得できます。

  • https://beta.apis.live.net/v5.0/me/skydrive/quota?access_token=ACCESS_TOKEN

※URLのパスのmeの部分は、User IDを直接指定もできます。

結果のJSONデータは次のように合計と利用可能なサイズ(Byte単位)が含まれています。

{
   "quota": 26843545600, 
   "available": 26602337349
}

現在は、ひとり25GB(26,843,545,600Byte)です。今後は、容量をアップするサービスも予定されています。

写真と音楽ファイル

第50回に紹介した写真のPhotoオブジェクトと音楽のAudioオブジェクトですが、新しい属性が増えています。

経緯度の取得

写真に経緯度情報が含まれている場合、SkyDriveのサイトでは図1のように地図上の場所が表示されます。

図1 場所の表示 図1 場所の表示

Photoオブジェクトには、経緯度情報を表すlocationプロパティが追加されていますので、連携したアプリからも図のような地図上に表示するといったこともできるようになりました。

Fileオブジェクトの該当部分のJSONデータは次のようになります。

"location": {
   "latitude": 47.92059, 
   "longitude": -122.2891
}

このlocationプロパティは、ファイルが共有されていない場合にのみ含まれています。

音楽情報の取得

これまでREST APIで、音楽ファイルは通常のファイルと同じ扱いでしたが、音楽特有の情報が取得できるようになっています。

追加されたAudioオブジェクトのプロパティは次の通りです。

プロパティ R/W 説明
title string RW タイトル
artist string RW アーティスト名
album string RW アルバム名
album_artist string RW アルバムのアーティスト名
genre string RW ジャンル
duration integer R 再生時間(ミリ秒)
picture string R SkyDrive上のオーディオの画像のURL

※RWは読み書き可能。Rは読み取り専用のプロパティです。

残念ながら、SkyDriveのサイトで参照できる情報より、年や作曲者など取得できる内容がまだ若干少ないです。

OneNoteノートブックの参照

Office OneNoteはSkyDriveと連携し、ノートブックをSkyDriveに保存できます。またOneNote Web App図2を使えば、Webブラウザーでノートブックの編集もできます。

図2 OneNote Web App
図2 OneNote Web App

このノートブックのファイルがSkyDrive上にある場合、ファイルを参照すると少し特別扱いになっています。

Fileオブジェクトのtypeプロパティの値はnotebookになり、linkプロパティの値は、直接OneNote Web Appで開くURLになっています。

ノートブックの表すFileオブジェクトのJSONデータは、次のようになります。

{
    "id": "file.xxxxx",
    "from": {
        "name": "梓 中野",
        "id": "xxxxx"
    },
    "name": "Notebook1",
    "description": null,
    "parent_id": "folder.xxxx",
    "size": 10286,
    "comments_count": 0,
    "comments_enabled": false,
    "is_embeddable": true,
    "link": "https://skydrive.live.com/redir.aspx?...",
    "type": "notebook",
    "shared_with": {
        "access": "Just me"
    },
    "created_time": "2011-05-10T15:00:00+0000",
    "updated_time": "2012-03-25T18:00:00+0000"
}

ほかのFileオブジェクトと異なる点は、upload_locationおよびsourceプロパティが含まれていません。

既定のフォルダーのパス

Windows Phoneで撮影した写真がアップロードされる「カメラロール」フォルダーや、ドキュメントやピクチャーフォルダーなどいくつかの既定のフォルダーに、FolderオブジェクトのIDを指定する代わりに、わかりやすいパスを指定してアクセスできるようになっています。対象のフォルダーは次の通りです。

SkyDrive camera rollフォルダー
USER_ID/skydrive/camera_roll
Documentsフォルダー
USER_ID/skydrive/my_documents
Picturesフォルダー
USER_ID/skydrive/my_photos
Publicフォルダー
USER_ID/skydrive/public_documents

USER_IDは、UserオブジェクトのIDまたはmeを指定して、たとえばカメラロールのファイル一覧を取得するには次のようなURLにアクセスします。

  • https://apis.live.net/v5.0/me/skydrive/camera_roll/files?access_token=ACCESS_TOKEN

フィルタリング・ページング

以上が、SkyDriveに関わる新しいREST APIの内容でした。タグとコメントの作成と削除は割愛します。最後に、これまでに紹介していなかったフィルタリングとページングについて紹介します。

filterパラメーター

フォルダー内のファイルの情報を取得する場合、me/skydrive/filesのようなファイルを表すパスにアクセスします。末尾が/filesの場合、対象のフォルダーに含まれるファイル一覧が結果として取得できます。ここまでは、前回までに紹介した内容です。

次のようにURLにfilterパラメーターを指定すると、フォルダー内の写真など特定の形式のオブジェクトだけ取得できます。

  • FOLDER_ID/files?fileter=photos

指定できる値は、albums、audio、folders、photos、videosです。FOLDER_ID/files?fileter=videos,audio のような記述も可能です。

limitとoffsetパラメーター

ファイル一覧など取得する個数や、取得する開始位置の指定もできます。個数を指定するには、limitパラメーターを使います。下記の場合、ひとつのファイル情報のみ取得できます。

  • FOLDER_ID/files?limit=1

位置を指定するには、offsetパラメーターを使います。offsetは0が1番目のファイルを指します。下記の場合3〜7番目のファイル情報を取得します。

  • FOLDER_ID/files?limit=5&offset=2

limitとoffsetパラメーターは、フォルダーのファイル以外にも、アルバム、コメント、タグにも使えるパラメーターです。

  • ALBUM_ID/files?limit=2
  • PHOTO_ID/comments?limit=2
  • PHOTO_ID/tags?limit=2

limitとoffsetパラメーターを使用し、すべての情報が取得できていない場合、前後の情報へのパスが次のようにJSONデータに含まれています。

"paging": {
    "next": "/me/skydrive/files?offset=2&limit=1", 
    "previous": "/me/skydrive/files?offset=0&limit=1"
}

sort_byとsort_orderパラメーター

ファイルは、sort_bysort_orderパラメーターを使って、名前順などの並び順を指定できます。

  • FOLDER_ID/files?sort_by=name

指定できる値は、created、updated、name、size、 defaultです。

次のように昇順・降順も指定できます。

  • FOLDER_ID/files?sort_by=name&sort_order=descending

指定できる値は、ascendingとdescendingです。

以上が、フィルタリング・ページングに関わるURLに指定可能なパラメーターです。これらのパラメーターを活用すると、より柔軟にリソースへアクセスできますね。

おわりに

今回はここまでです。少し前回より間が空いてしまいましたが、今回は新しいLive SDKの中からSkyDriveのREST APIの紹介と、URLに指定できるパラメーターを紹介しました。次回はこれらを活用したアプリを作りたいと思います。

おすすめ記事

記事・ニュース一覧