LoginSignup
9
9

More than 5 years have passed since last update.

Microsoft Graph を使ってみよう : ドライブとファイルリソース (OneDrive/SharePoint)

Last updated at Posted at 2018-05-22

Microsoft Graph を使うと、個人の OneDrive、OneDrive for Business および SharePoint のドキュメントライブラリにあるファイルを操作できます。

ドライブリソース

OneDrive 自体や SharePoint のドキュメントライブラリなど最上位のオブジェクトで、ファイルを指定する際にまずドライブを指定する必要があります。また自分のドライブやグループのドライブなど様々なリソースに紐づいています。

主なシナリオ

  • 各種ドライブの一覧表示、特殊フォルダーを含む個別ドライブへのアクセス
  • ドライブ内のアイテムの取得、検索
  • フォルダーの作成

ドライブリソースの操作

いくつか代表的な操作を以下に紹介します。

OneDrive または OneDrive for Business ドライブ, およびグループドライブの取得

GET: https://graph.microsoft.com/v1.0/me/drives
GET: https://graph.microsoft.com/v1.0/groups/{id}/drives

C#
await graphClient.Me.Drives.Request().GetAsync();
await graphClient.Groups["id"].Drives.Request().GetAsync();

OneDrive や既定の SharePoint サイトドライブの取得

GET: https://graph.microsoft.com/v1.0/me/drive/root
GET: https://graph.microsoft.com/v1.0/sites/root/drive/root

C#
await graphClient.Me.Drive.Root.Request().GetAsync();
await graphClient.Sites["root"].Drive.Request().GetAsync();

ドライブ内のアイテム一覧、検索、最近使ったファイル
アイテムにはフォルダーとファイルが含まれます。最近使ったファイルは OneDrive、SharePoint に関係なくすべてのロケーションから情報が取得されます。

GET: https://graph.microsoft.com/v1.0/me/drive/root/children
GET: https://graph.microsoft.com/v1.0/me/drive/root/search(q='de:code')?select=name,id,webUrl
GET: https://graph.microsoft.com/v1.0/me/drive/recent

C#
await graphClient.Me.Drive.Root.Children.Request().GetAsync();
await graphClient.Me.Drive.Root.Search("de:code").Request().Select("name,id,webUrl").GetAsync();
await graphClient.Me.Drive.Recent().Request().GetAsync();

特殊なドライブへのアクセス
写真やドキュメントなど特殊フォルダーにアクセスできます。詳細は 名前で特殊フォルダーを取得する を参照。

GET: https://graph.microsoft.com/v1.0/me/drive/special/photos
GET: https://graph.microsoft.com/v1.0/me/drive/special/documents

C#
await graphClient.Me.Drive.Special["photos"].Request().GetAsync();
await graphClient.Me.Drive.Special["documents"].Request().GetAsync();

ドライブアイテム

ドライブ内にある各オブジェクトはドライブアイテムリソースとなります。

主なシナリオ

  • アイテムの作成、読み取り、更新、削除 (CRUD)
  • アイテムのコピー、移動、検索、共有
  • サムネイルの取得
  • アクセス権の管理
  • フォルダに対してコンテンツのアップロード、ダウンロード

ドライブアイテムリソースの操作

いくつか代表的な操作を以下に紹介します。

フォルダーを作成する

POST: https://graph.microsoft.com/v1.0/me/drive/root/children

Body
{
  "name": "サンプルフォルダ",
  "folder": { },
  "@microsoft.graph.conflictBehavior": "rename"
}
C#
var folder = await graphClient.Me.Drive.Root.Children.Request().AddAsync(new DriveItem()
{
    Name = "サンプルフォルダ",
    Folder = new Folder(),
    AdditionalData = new Dictionary<string, object>()
    {
            { "@microsoft.graph.conflictBehavior", "rename" }
    }
});

サムネイルを取得する
サムネイルを取得すると、各サイズのサムネイルの URL が返ります。

GET: https://graph.microsoft.com/v1.0/me/drive/items/{id}/thumbnails

C#
await graphClient.Me.Drive.Items["id"].Thumbnails.Request().GetAsync();

ファイルをダウンロードする
format を指定した場合、指定したフォーマットでダウンロードできます。ここでは PDF 形式でダウンロードを指定。

GET: https://graph.microsoft.com:443/v1.0/me/drive/items/{id}/content
GET: https://graph.microsoft.com:443/v1.0/me/drive/items/{id}/content?format=pdf

C#
await graphClient.Me.Drive.Items["id"].Content.Request().GetAsync();
await graphClient.Me.Drive.Items["id"].Content.Request
(
    new List<Option>() { new QueryOption("format", "pdf") }
).GetAsync();

まとめ

個人のファイルを活用するために OneDrive から SharePoint にファイルを集約したり、アプリケーションでサムネイルを活用したりしてみてください。

目次へ戻る

参照

Microsoft Graph でのファイル操作
Microsoft Graph でのドライブ操作
Microsoft Graph でのドライブアイテム操作

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9