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

第51回 SkyDrive API 概要(4)──ファイルの共有ほか

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

はじめに

Windows 8のConsumer Previewの公開が迫り,Windows 8とSkyDriveの連携,そしてSkyDriveの新機能についての情報も公開されていますBuilding Windows 8)。エクスプローラーとの統合は待ちに待った人も多いのではないでしょうか。APIの更新などもあれば,この連載でも紹介したいと思います。

さて今回の内容は,前回から引き続きLive Connectを利用したSkyDriveのアクセスです。前回までにある程度までのフォルダーやファイルの基本的な操作について紹介しています。今回は,APIによるファイルの共有と,ファイルのコメントやタグの取得について紹介します。

ファイルの共有

SkyDriveサービス自体の大きな特徴のひとつは,共有機能です。少しややこしい部分でもあるのですが,共有する相手は,サービスでは次の3種類に分類されて表示されています。

  • 自分のみ
  • 全員(パブリック)
  • リンクを受け取った人

「リンクを受け取った人」は,もう少し詳しくみると次の2種類に分類できます。

  • リンクを知っていれば誰でもアクセス可能
  • 指定したユーザーがサインインした状態でのみアクセス可能

前者はアクセスに認証が不要なため,Webサイトなどで公開すると不特定多数の人がアクセスできる状態になっていますので,少し注意が必要です。全員がアクセスできる状態との違いは,ファイルの所有者のSkyDriveのページにアクセスしたときに表示されるか,されないかです。

共有は,図1のようにページの右側の共有から設定を行います。また,ファイルやフォルダーの右クリックメニューからも共有できます。

図1 共有設定

図1 共有設定

指定したユーザーに共有リンクを知らせるには,図2のように電子メールで相手に送信します。または,「リンクの取得」からURLをコピーして相手に知らせます。

図2 電子メールの送信

図2 電子メールの送信

共有リンクは,ファイルの表示だけでなく編集もできるリンクも取得できます。リンクの取得図3では,次のように分類されています。

図3 リンクの取得

図3 リンクの取得

これらの共有設定はファイル単位で行えます。フォルダーに対しても共有情報が設定されています※1)。非公開のフォルダー内の特定のファイルだけ公開するといった操作もできます。

上記の内容以外に,TwitterやFacebookなどへの投稿による共有や,WebサイトにHTMLコードを埋め込んで共有する方法もあります。

APIでファイルやフォルダーの共有設定を知る方法は,前回までの内容にでてきています。ファイルやフォルダーの情報を取得したときのFileFolderオブジェクトのshared_withの内容でわかります。shared_withオブジェクト内のaccessプロパティが最初の3種類を示しています。

  • Just me: 自分のみ
  • Everyone (public): 全員(パブリック)
  • People with a link: リンクを受け取った人
※1

以前は,フォルダー単位の共有設定のみ可能でした。

共有リンクの生成

さて,APIでの共有の操作ですが,Webサイト上で可能な変更や削除などの操作はできません。フォルダーやファイルに対して,リンクを知っている人だけがアクセスできる共有リンクの生成のみできます。

共有リンクはアプリ用に生成され,Webで生成したリンクのURLとは異なります。アプリによって共有されたファイルは図4のようにWebサイトで確認できます。

図4 アプリによる共有

図4 アプリによる共有

OAuthによりユーザーから認可を受けたアプリ自身は自由にファイルにアクセスできるため,共有リンクの生成は,アプリのユーザーがアプリのユーザーでない人と共有したい場合などの用途に限られてくると思います。

実際に共有リンクを生成する方法は簡単です。次のようなURLにHTTP GETメソッドでアクセスします。

表示のみできる共有リンク
https://apis.live.net/v5.0/FILE_ID/shared_read_link?access_token=ACCESS_TOKEN
編集と表示ができる共有リンク
https://apis.live.net/v5.0/FILE_ID/shared_edit_link?access_token=ACCESS_TOKEN

FILE_ID部分はFileオブジェクトのidの値を指定します。フォルダーの共有の場合はFolderオブジェクトのidを指定します。

HTTP GETメソッドのため,共有リンクの生成というよりは取得なのですが,このURLにアクセスすることで共有リンクのURLが新たに生成されファイルの状態も変更されますので,ここでは生成と呼んでいます。

サーバーからの応答は次のようなJSONデータになります。

{
   "link": "https://skydrive.live.com/redir.aspx?xxxxx"
}

共有リンクを作成した場合,共有状態を元に戻すことはできませんので注意してください。

また,Webページに埋め込み用のHTMLコードの取得(生成)もできます。

  • https://apis.live.net/v5.0/FILE_ID/embed?access_token=ACCESS_TOKEN

埋め込み用のHTMLコードを取得可能かどうかは,Fileオブジェクトのis_embeddableからわかります。

著者プロフィール

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

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

URL:http://katamari.jp

コメント

コメントの記入