Connectを紹介していきます。Liveサービスと統合したアプリ開発を可能にするAPIコレクションです。Preview版から、若干の修正を加え、正式なバージョンとしてAPIを利用できるようになっています。SDKもリリースされています。詳しく知りたい方は、こちらもチェックしてみてください。今回はSkyDriveです。Connectを利用するとSkyDriveにアクセスできます。SkyDriveのAPIを待望していた人も多いのではないでしょうか。Connectからできるようになりました。Connectは特定のプラットフォームに限定されたものではありません。iOSやAndroidなどからも使えます。8では、便利に使えるAPIが用意されています。SkyDriveと連携したアプリ開発にトライしてみてください。新しいSkyDriveはじめにSkyDriveのサービス自体について紹介します。SkyDriveは、無償のオンラインストレージサービスです。写真やファイルを保存、そして共有できます。容量は25GBまで利用できます[1]⁠。Appsとシームレスな連携も特徴です。SkyDrive昨年の11月にアップデートがあり、さらにモバイル向けアプリが12月に公開されています。アップデートでは、共有機能の強化や、右クリックによるメニューの表示、ドラッグドロップによるファイルのアップロードなど、使いやすいUIが提供されています。Chrome、Firefoxで動作する機能もあります。8でもクラウドストレージとして重要な役割を担うと予想されます。利用してみたことがない方は、今のうちに使ってみてください。改善点などの要望があれば、フィードバックを「ご意見ご感想」から送信するとよいでしょう。[1]ひとつのファイルは100MBまでのサイズ制限があります。Meshを利用すると5GBのストレージを追加で利用でき、ひとつのファイルサイズの制限もありません。Liveグループを利用するとグループ専用の5GBのストレージが利用できます。APIのできること・できないことそれでは、APIの内容についてみていきましょう。APIという言葉は、正式なドキュメントには出てきていません。Connectで接続できるリソースのひとつにすぎません。言い換えると、SkyDrive以外のリソースにもこれから紹介する同様の手法でアクセス可能です。Connectを利用すると、WebサービスのSkyDriveと同じものが作れるかというとそうではありません。今のところ、フォルダーやファイルの操作は限定されています。扱えるファイルの種類も制限されています。Connectで、フォルダーとファイルについて可能な操作は、次の通りです。フォルダー・ファイル情報の取得フォルダー・ファイル情報の変更フォルダーの作成フォルダー・ファイルの削除ファイルのダウンロードファイルのアップロードフォルダー・ファイルの共有リンクの作成ファイルの埋め込み用HTMLコードの取得フォルダー・ファイルの移動ファイルのコピーフォルダー・ファイルのコメント取得SkyDriveでは、アルバムという特別なフォルダーがあります。アルバムは、写真やビデオ、音楽ファイルの保存を目的としたもので、SkyDriveのUIでは「写真」メニューから、まとめて表示できます(図2⁠)⁠。通常のフォルダーとアルバムの変更は、フォルダーの種類(図3)から行います[2]⁠。写真・ビデオ・音楽ファイルは特別なファイルとして扱われ、サムネイルなどファイルより多くの情報を持っています。アルバムと写真などのファイルについても、フォルダーやファイルと同様の操作ができます。Connectでは、通常のフォルダーやファイルと区別して操作でき、アルバム内の写真の一覧の取得といった操作も可能です。ユーザーはアプリに対して、アルバム情報のみアクセスを許可するといったこともできます。アルバム関連で可能な操作は次の通りです。以上が、SkyDriveのフォルダーやファイルに対してできる操作です。これ以外の操作、たとえば、共有設定の変更などはできません。[2]写真しか格納していないフォルダーは変更が反映されないようです。サポートしているファイル扱うファイルにも制限があります。サポートしているファイルは、次の通りです。Video)音楽(アップロードはWaveファイルのみ)大きく分類して、ドキュメント・写真・ビデオ・音楽の4種類があります。サポートしていない形式(拡張子)は、アップロードできません。参照やダウンロードは可能です。2.0を利用しています。OAuthの仕組みに従って、アプリは利用者からリソースのアクセス許可を得て、SkyDriveなどのリソースを操作します。ConnectとOAuthについては、第45回で詳しく説明していますので、そちらをご覧ください。事前にアプリケーション設定サイトで、アプリの登録が必要です。新しくガイドラインが提供されています。こちらも開発する前に併せて確認してください。一部のリソースを除いて、すべてHTTP(S)の通信と、JSON形式のデータのやりとりで行います。APIを利用してリソースアクセスを行います。APIも利用できます。APIの呼び出しが行われていますが、より簡単にそして各プラットフォームに適したUIが提供されています。APIは、これまでにも紹介していますので、以前の連載内容を参照してください。APIのみを使用します。APIをみていきましょう。最初にフォルダーの情報を取得してみましょう。SkyDriveのルートフォルダーの情報は次のURLにアクセスすると得られます。token(アクセストークン)を指定します。手っ取り早くアクセストークンを得るには、Webブラウザーに次のURLを入力します。認可画面(図4)に移動し、認可後のURLを参照するとアクセストークンが含まれています。認可画面アクセストークンの取得については、第45回で詳しく説明していますので、そちらも参照してください。SkyDriveのアクセスについて、ユーザーから認可を得るときに指定する許可の内容Scope(スコープ)は、次の通りです。SkyDriveのフォルダー・ファイルの作成・編集・削除(wl.contacts_skydriveの内容を含む)ファイルの読み取りだけが必要な場合は、wl.skydriveを指定し、作成などのアクセスも含める場合は、wl.skydrive_updateを指定します。アプリに必要な許可のみユーザーに要求するようにしましょう。上記以外にも、よりアルバムや写真のアクセスに操作を制限した、wl.photosや、wl.contacts_photosも指定できます。最初のURLにアクセスすると、ルートフォルダーの情報が、次のようなJSON形式で取得できます。"2012-01-09T14:00:00+0000"}Webブラウザーでも、簡単に内容を確認できます(図5⁠)⁠。フォルダー情報の取得このフォルダーの情報を表すFolderオブジェクトの内容は、次の通りです。GETメソッドでアクセスします(URLのFOLDER_IDには、FolderオブジェクトのIDを指定します⁠)⁠。https://apis.live.net/v5.0/FOLDER_ID?access_token=ACCESS_TOKENフォルダー内のアイテムを取得する場合は、パスに/filesを付けて次のようにします。https://apis.live.net/v5.0/FOLDER_ID/files?access_token=ACCESS_TOKENフォルダー情報を返すリソースのパスは、次の通りです。特定のアルバム内のアイテム上記のUSER_IDは、パス「/me」などで得られるユーザーのIDです。ALBUM_IDは、今回紹介しませんが、アルバムを表すAlbumオブジェクトのIDです。フォルダーに格納できるアイテムは、フォルダー、ファイル、写真、ビデオ、音楽の5種類です。実際に、写真などが含まれているフォルダーのファイル一覧を取得してみるといろいろな情報が得られると思います。次はファイル情報を取得してみましょう。フォルダーのパスに「/files」を付けると、フォルダー内のアイテムが取得できます。ひとつのファイル情報は、次のようなJSON形式で取得できます。"2011-12-13T14:42:23+0000"}ファイルの情報を表す、Fileオブジェクトの内容は次の通りです。linkFolderオブジェクトとほぼ同じ内容ですが、ファイルサイズなどファイル特有の情報が含まれています。公開しているファイルにはコメントを付けることができ、その情報を取得できます。PowerPointなどの文書はWebページに貼り付けるHTMLコードが生成できます。その埋め込み可否の情報もあります。GETメソッドでアクセスします。https://apis.live.net/v5.0/FILE_ID?access_token=ACCESS_TOKENファイル情報が含まれるリソースのパスは次の通りです。特定のユーザーのSkyDriveのアイテム以上が、ファイル情報の取得についてです。PHPでフォルダー・ファイルの表示ここまでの内容をふまえて簡単なサンプルコードを示します。Connectは、特定のプラットフォームやプログラミング言語に依存していません。基本的にはHTTP(S)通信とテキスト処理だけです。OAuthの認可処理のみWebブラウザーコントロールなどを使う必要があります。ここでは、PHPを使って記述します。マイクロソフトからGitHub上に各種プラットフォームや言語でのサンプルコードが提供されていますので、そちらも確認してみるとよいでしょう。サンプルは、SkyDriveのアイテム一覧を表示する単純なものです(図6⁠)⁠。フォルダー(またはアルバム)の場合は、リンクとして表示して下の階層へ移動できるようにしています。API呼出しは、第45回でも登場しています。そのときは、サインインしたユーザー名の表示を行いました。今回のコードでの違いはSkyDriveの情報の表示になっているだけで大きな違いはありません。以下にすべてのコードを示します。</body></html>少しごちゃごちゃとしていますが、単純なREST処理のみでSkyDriveにアクセスできることがわかるかと思います。サンプルでは、下の階層へ移動するため、一時的にCookieにアクセストークンを保存しています。アクセストークンには有効期限がありますが、コードでは考慮していません。おわりに今回はここまでです。いかかでしたでしょうか。今回は、SkyDriveのフォルダーとファイル情報の取得まで紹介しました。SkyDriveの操作は制限されているとはいえ、作成・削除など多くの操作ができ、まだまだ紹介できていない内容があります。Connectを利用してSkyDriveのアクセスについて紹介する予定です。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。